c++拷贝构造函数--深拷贝--浅拷贝

拷贝构造函数是一种特殊的构造函数,

唯一的参数是本类型的一个引用变量。

构造函数名(const  构造函数名 &  c)

{

      age  = c. age;

}

当用一个已经初始化过了的自定义类型对象去初始化另外一个新构造的对象的

时候,拷贝构造函数就会被自动调用。

1.一个对象以值传递的方式传入函数体

2.一个对象需要通过另外一个对象进行初始化

3.一个对象以值传递的方式从函数返回

如果在类中没有显示的声明一个拷贝构造函数,那么编译器会自动生成

一个默认的拷贝构造函数,即位拷贝,也叫浅拷贝。

自定义拷贝构造函数是一种良好的编程风格,可以阻止编译器形成默认

的拷贝构造函数。

=====深拷贝与浅拷贝=====

如果类内成员变量需要动态开辟堆内存,此时如果实行浅拷贝,就是把

对象里的值完全复制给另一个对象,那么新对象的堆内存变量也同时

指向旧对象的堆成员变量,即两个指针指向同一块内存区域。当释放其中一个

指针的内存时候,另一个指针就成为了野指针。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. C++基础 大多数编程语言通过两种方式来进一步补充其基本特征1)赋予程序员自定义数据类型的权利,从而实现对语...
    王侦阅读 768评论 0 3
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,145评论 1 32
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,645评论 8 265
  • 收拾完房子、洗完衣服、躺在沙发上,不开心。只要干这些无聊的家务,我就尤其的不开心。为什么我要每天干这些,我...
    洁儿洁儿洁儿阅读 213评论 0 0
  • 近日公司學習中有講到團隊,望字生意,團隊的簡化字寫做“团队”,有解為團字是將有才幹的人聚集在一起,隊字是人字邊加一...
    SeanQD阅读 238评论 0 0