C++中初始化列表的多项是由逗号隔开,逗号运算符的运算顺序是从左到右,但是事实上却相反,初始化列表的运算顺序是从右边到左边。测试方法就是
#include <iostream>
#include <stdlib.h>
//结论就是从右到左
using namespace std;
class test {
public:
int x;
int * p;
test(int a):p(new int [x]), x(a)
{
cout << x << endl;
}
};
int main() {
test a(6);
a.p[4] = 10;
system("pause");
return 0;
}
过程中改变传入的x的值和初始化列表x(a)的顺序,就能发现,结果就是从右边到左边。