我已经理解了拷贝构造函数的概念,我们使指针具有不同的位置并指向相同的值。C++特殊成员拷贝构造函数
但我想知道为什么当我尝试访问一个对象的变量的值时,它的值不同于另一个的值。
例如:
#include <iostream.h>
using namespace std;
class myclass {
public:
int a, b;
string c;
};
int main()
{
myclass foo, bar;
foo = bar;
bar.a = 20;
cout << foo.a << endl; // why it is not printing 20 here, as implicit copy
// constructor copy all members from object bar
// to object foo?
}
因为您在设置该成员之前进行了复制。 – Till 2014-09-01 16:53:50
*“我已经理解了复制构造函数的概念”*,不,你没有:( – 2014-09-01 16:54:00
当你有指针时,你只会指向指向同一个对象的指针,这里没有指针,只有两个独立的对象。更改一个对象不会改变另一个对象 – 2014-09-01 16:58:39