对象浅层复制的三个粗糙的实例

 1 class A 
 2 {
 3 private:
 4     int a;
 5     int b;
 6     int* c;
 7 public:
 8     A()        
 9     :a( 0 )
10     {
11         b=2;
12         c=&b;
13     }
14     A(int n)        
15     :a( n )
16     {
17         b=2;
18         c=&b;
19     }
20     void print()
21     {
22         cout<<"a="<<a<<endl<<"b="<<b<<endl;
23     }
24     void add()
25     {
26         a++;
27         (*c)++;
28     }
29 };
30 
31 int _tmain(int argc, _TCHAR* argv[])
32 {
33     //注意,以下浅层复制中的指针都将共用aa对象的指针资源。
34     A aa(1);      //显式构造aa
35     A bb(2);      //(1)显式构造bb
36     bb= aa;        //注意,类对象可以直接用=复制,浅层复制
37     aa.print();    
38     bb.add();
39     aa.print ();
40 
41     A cc;         //(2)默认构造cc
42     cc=aa;        //浅层复制
43     cc.print();
44 
45     A dd=aa;     //(3)注意,浅层复制,这里dd将不会调用构造函数
46     dd.print();    
47     dd.add();    
48     dd.print();
49     aa.print();
50 
51     getchar();
52     return 0;
53 }
**************************************************************
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员
[=.=]
原文地址:https://www.cnblogs.com/kevinGaoblog/p/2518622.html