构造函数的成员初始化列表

初始化会按照变量声明的顺序进行。因此虽然下面的代码想要用 j 的新值初始化 i,但实际上是 i(j) 先被执行,然后才是 j(val)

不过,构造函数代码块中的初始化过程始终发生于成员初始化列表之后。