百合文库
首页 > 网文

深拷贝与浅拷贝到底是什么(3)

2023-05-17 来源:百合文库
// this->str = obj.str; //这里是浅复制会出问题,要深复制
//}
CopyDemo(CopyDemo& obj) //一般数据成员有指针要自己写复制构造函数,如下
{
this->a = obj.a;
// this->str = obj.str; //这里是浅复制会出问题,要深复制
this->str = new char[1024];//应该这样写
 if(str != 0)
 strcpy(this->str,obj.str); //如果成功,把内容复制过来

深拷贝与浅拷贝到底是什么


}
~CopyDemo() //析构函数
{
delete str;
}
public:
int a; //定义一个整型的数据成员
char *str; //字符串指针};
int main()
{
 CopyDemo A(100,"hello!!!");
CopyDemo B = A; //复制构造函数,把A的10和hello!!!复制给B
 cout <<"A:"<< A.a << "," <<A.str << endl;

深拷贝与浅拷贝到底是什么


猜你喜欢