我已经学习 C++ 两个星期了。在 Java 中,如果我们有两个属于同一个类的不同对象,并且如果我们将一个对象的引用分配给另一个对象的另一个引用,那么它们就指向同一个对象。之后,通过一个引用更改数据成员也会更改另一个引用中的数据成员。我的问题是:在 C++ 中不是也一样吗?我对复制构造函数和赋值运算符有点困惑。他们两个都做深拷贝。没有他们,据我所知,我们只能做浅拷贝。我也有一个代码片段。
#include <iostream>
using namespace std;
class Test
{
int x;
int &ref;
public:
Test(int i):x(i), ref(x) {}
void print() { cout << ref;}
void setX(int i) {x = i;}
Test &operator = (const Test &t) {x = t.x; return *this;}
};
int main()
{
Test t1(10);
Test t2(20);
t2 = t1;
t1.setX(40);
t2.print(); // This will print 10
cout << "\n\n";
t1.print(); // This will print 40
return 0;
}
莫回无
富国沪深
qq_花开花谢_0
有只小跳蛙
SMILET
相关分类