我知道当我要将现有对象初始化为新创建的对象时,称为复制构造函数。
我有一个小问题,
#include<iostream.h>
using namespace std;
class Base
{
int* m;
public:
Base(int p)
{
m = new int(p);
}
Base(const Base& obj)
{
m = new int(*obj.m);
}
Base operator=(const Base& obj1)
{
m = new int(*obj1.m);
}
~Base()
{
delete m;
}
};
int main()
{
Base b(10);
Base a = b;
b = a;
return 0;
}
在这里我为什么要这样做Base a = b;
或何时会发生这种情况?或者我应该在哪里打电话?