zoukankan      html  css  js  c++  java
  • 对象浅层复制的三个粗糙的实例

     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 }
    **************************************************************
    我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员
    [=.=]
  • 相关阅读:
    Android Studio相关
    iOS自动签名网站
    Ruby开发小记
    Python全栈之路目录结构
    不会docker的开发
    Centos7安装python3
    03 centos7的基本价绍
    02 centos虚拟机安装
    01 Linux虚拟机的安装
    跨域问题的解决
  • 原文地址:https://www.cnblogs.com/kevinGaoblog/p/2518622.html
Copyright © 2011-2022 走看看