浅拷贝构造是创建一个对象B,并使B与A指向同一地址。
深拷贝构造是创建一个对象B,使B与A所指向的地址里面的东西一模一样。
具体含义不再表诉。
#include<iostream>
using namespace std;
class Stu
{
public:
Stu()
{
p=new int(1000);
cout<<"p="<<p<<endl;
cout<<"students"<<endl;
}
~Stu()
{cout<<"~students"<<endl;
delete p;}
/* Stu(const Stu &r)//-----------------------删去此段代码,运行会出现错误,因为默认的拷贝为浅拷贝,并不会多创建一个p
{
a=r.a;
b=r.b;
p=new int;
*p=*(r.p);
cout<<"copy success"<<endl;}
*/
private:
int *p;
int a;
int b;
};
int main()
{
Stu m;
Stu n=m;
cout<<&m<<'\t'<<&n<<endl;
}