【发布时间】:2020-04-29 15:40:51
【问题描述】:
大家好,我一直在研究复制构造函数,我在其中一个网站上遇到了这句话:
当执行按位(赋值运算符)赋值时,两个对象共享相同的内存位置,一个对象的变化反映在另一个对象中。 所以后来我尝试检查它,看看它是否像我写了一些简单的代码如下:
class Base{
public:
Base(int age, string name) :age(age), name(name) {};
Base() {};
void display() {
cout << age;
}
int age;
string name;
};
int main() {
Base b1(5, "Alek"),b2;
b2 = b1;
b1.display();
b2.age = 10;
b1.display();
system("pause");
所以根据那里写的内容,第二次调用 b1.display() 的值必须是 10 ?但是为什么它仍然显示相同的结果?
【问题讨论】:
-
b2是b1的副本。对其中一项的更改不会反映在另一项中。 -
我希望您阅读的内容是关于一个对象具有指向另一个对象的指针的情况,在这种情况下,您可以获得两个具有指向另一个对象的相同指针的对象。但你的代码不是那样的。
-
这是我要引用的网站,如果是这样的话,它并没有说明一个对象指向另一个对象。我不难学习它。:techdifferences.com/…
标签: c++ copy-constructor