假设我有以下课程:
class Test
{
int num;
public:
Test(int x):num(x){}
Test(const Test &rhs):num(rhs.num+1){}
};
int main()
{
Test test(10);
Test copy = test;
}
副本中的num
应该是11
,我的问题是关于副本构造函数内部,为什么我们可以访问using的私有成员num
来初始化副本中的 ?令我困惑的是,如果您键入,当然这是错误的,因为您试图访问 private ,但是如果您通过引用复制构造函数通过测试,它可以工作,有人可以告诉我这里发生了什么吗? test
num
num
cout<<test.num<<endl
num