书上的一个例子:
class Member1{
int x;
public:
Member1(int iv) : x(iv) { }
};
class Member2{
int y;
public:
Member2(int iv) : y(iv){ }
};
class withMembers{
Member1 m1;
Member2 m2;
public:
withMembers(int a = 0) : m2(a),m1(a) { }
};
为什么是先对m1进行初始化的操作呢,逗号运算符的求值顺序不是从左到右依次求值吗,那这个表达式中应该是先对m2进行求值的操作呀。有点迷惑......
m2(a),m1(a)
这不是逗号运算符。
逗号运算符说的是表达式里的逗号,逗号还有很多别的用法,比如 foo(1,2),你能说这个逗号是逗号运算符么。
类似的,*有的地方是指针,有的地方是乘法。