qq_45651829
氯的平方
2020-08-09 22:18
采纳率: 64.7%
浏览 74

关于c++类中的组合类的初始化的问题

书上的一个例子:

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进行求值的操作呀。有点迷惑......

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • caozhy
    已采纳
    m2(a),m1(a)
    这不是逗号运算符。
    逗号运算符说的是表达式里的逗号,逗号还有很多别的用法,比如 foo(1,2),你能说这个逗号是逗号运算符么。
    类似的,*有的地方是指针,有的地方是乘法。
    
    点赞 评论

相关推荐