【发布时间】:2020-06-08 22:04:11
【问题描述】:
我写了下面的代码来看看浅拷贝。我希望 v2 是 v1 的浅表副本,因为没有定义复制构造函数,所以我希望更改 v1.n 也会导致 v2.n 更改,但事实并非如此。我做错了什么?
#include<iostream>
using namespace std;
class Vector
{
public:
int n;
float *v;
Vector();
};
Vector::Vector()
{
v = new float[100];
n = 100;
cout<<"Constructor called"<<endl;
}
int main()
{
Vector v1;
v1.n=5;
Vector v2=v1;
v1.n=6;
cout <<"Vector v1 has n value: "<<v1.n<<endl;
cout <<"Vector v2 has n value: "<<v2.n<<endl;
return 0;
}
【问题讨论】:
-
如果你想要浅拷贝行为,请创建一个指针。
标签: c++ oop copy-constructor shallow-copy