我正在学习 C++,但我对赋值运算符一无所知。据我了解,它们应该提供对象的深层副本。这是一个例子
Test::Test(int i){
value = i;
}
Test& Test::operator=(const Test& rhs){
value = rhs.value;
return *this;
}
现在:
Test* t1 = new Test(1);
Test* t2 = t1; //t2 should be now a deep copy of t1
t1->value = 2;
cout << t1->value;
cout << t2->value;
输出是22
,但我预计是“21”。我在这里缺少什么明显的东西?