我有以下代码,它利用了初始化列表中的逗号运算符。
#include <iostream>
using namespace std;
class Base
{
protected:
int b;
public:
Base(int a):b(a){}
};
class A:public Base
{
private:
const int i;
const int j;
void inc(int & a, int & b) {a++; b++;}
public:
A(int a, int b):i((inc(a,b),a)),j(b),Base(a+b){}
void print(){cout<<i<<" "<<j<<" "<<b<<endl;}
};
int main()
{
A a(6,7);
a.print();
return 0;
}
我期望结果是:
7, 8, 15
但结果是:
7, 8, 13
似乎“a”和“b”在用于构造基类时没有递增。不知道为什么...