最近查看了关于c++构造函数的博客,为了防止关键知识的遗忘,特此记录一些要点,以便于今后的查阅。

如果不主动书写构造函数,c++或默认提供一般构造函数,拷贝构造函数以及复制运算符的操作。
一般的构造函数没有任何参数,默认提供的该种构造函数不执行任何操作
默认提供的拷贝构造函数简单的将成员变量赋值
默认提供的复制运算也是简单的将成员变量赋值
假设有类A,3种初始化方法在代码中表现如下
A a();  一般的构造函数(带参数的一般构造函数可以视作对a的重载)
A a(b);  拷贝构造函数
A a = c; 赋值运算
值得注意的是 如果有动态分配的类成员 那么应该重载拷贝构造函数和赋值运算符
主要是由于,默认的考培构造和=运算符都是简单的进行成员的复制,这样会导致两个对象的成员同时指向一块内存区域,两个成员粘滞在一起,改动了其中一个,另一个也会发生改变。所以必须重载这个函数以及运算符,保证每个对象的成员(动态分配)都有自己独立的空间。
关于如何对赋值运算符进行重载, 会在另一篇中记载

最新文章

  1. u-boot源码分析之C语言段
  2. 理解Java中的弱引用(Weak Reference)
  3. ASP.NET 里的 JSON操作
  4. ASP.Net 验证控件 RequiredFieldValidator
  5. Git CMD - checkout: Switch branches or restore working tree files
  6. asp.net中Repeart选中整行操作
  7. HDU 4882 ZCC Loves Codefires(贪心)
  8. BNU Online Judge-34777-Magical GCD
  9. Exploit-Exercises nebule 旅行日志(一)
  10. 团队作业4——第一次项目冲刺(Alpha版本)2st day
  11. Hystrix是如何工作的
  12. RPM Database 实战详解
  13. nc工具使用
  14. redis:aof恢复与rdb服务器间迁移
  15. 错误/异常:java.io.FileNotFoundException: .\src\db.properties (系统找不到指定的路径。);的解决方法
  16. 数据结构(C语言版)-第7章 查找
  17. myeclipse从svn导入文件报错:
  18. [svc]linux正则及grep常用手法
  19. Openstack入门篇(十七)之Cinder服务-->安装并配置一个本地存储节点
  20. POJ 1469 COURSES 二分图最大匹配 二分图

热门文章

  1. 用computed返回this.$store.state.count,store更改了,但是computed没有调用
  2. 转: Redis基础总结
  3. PDF 补丁丁 0.5.0.2731 发布(增加去除页面表单和链接水印功能)
  4. Spring AOP基本概念
  5. 数据类型和Json格式(转载)
  6. Python之路,Day6 - 面向对象学习
  7. 面试复习(C++)之冒泡排序
  8. MS SQL提示列名 'Y' 无效的原因及解决办法
  9. iOS autoresizing布局
  10. Disable testSuite and testCase on some environment