#include <iostream>
using namespace std;
class A
{
public:
A()
{
pa = new int;
*pa = 5;
cout<<"A 被创建"<<endl;
}
A(const A& a)
{
pa = new int;
*pa = *(a.pa);------------》避免被复制的和之前的都指向同一个地址,这里开辟一个新地址,把值丢到新地址里面去。你该干嘛干嘛去
cout<<"A 被复制:"<<*pa<<endl;
}
~A()
{
delete pa;
pa =NULL;
cout<<"A 被销毁"<<endl;
}
void print()
{
cout<<"pa:"<<*pa<<endl;
}
void set(int i)
{
*pa = i;
}
private:
int *pa;
};
int main()
{
A *pa = new A();
pa->print();
//cout<<"a:"<<<<endl;
A b =*pa;
b.print();
pa->set(21);
pa->print();
b.print();
delete pa;
return 0;
}