c++构造函数 对象初始化
2024-10-19 16:40:41
最近查看了关于c++构造函数的博客,为了防止关键知识的遗忘,特此记录一些要点,以便于今后的查阅。
如果不主动书写构造函数,c++或默认提供一般构造函数,拷贝构造函数以及复制运算符的操作。
一般的构造函数没有任何参数,默认提供的该种构造函数不执行任何操作
默认提供的拷贝构造函数简单的将成员变量赋值
默认提供的复制运算也是简单的将成员变量赋值
假设有类A,3种初始化方法在代码中表现如下
A a(); 一般的构造函数(带参数的一般构造函数可以视作对a的重载)
A a(b); 拷贝构造函数
A a = c; 赋值运算
值得注意的是 如果有动态分配的类成员 那么应该重载拷贝构造函数和赋值运算符
主要是由于,默认的考培构造和=运算符都是简单的进行成员的复制,这样会导致两个对象的成员同时指向一块内存区域,两个成员粘滞在一起,改动了其中一个,另一个也会发生改变。所以必须重载这个函数以及运算符,保证每个对象的成员(动态分配)都有自己独立的空间。
关于如何对赋值运算符进行重载, 会在另一篇中记载
最新文章
- u-boot源码分析之C语言段
- 理解Java中的弱引用(Weak Reference)
- ASP.NET 里的 JSON操作
- ASP.Net 验证控件 RequiredFieldValidator
- Git CMD - checkout: Switch branches or restore working tree files
- asp.net中Repeart选中整行操作
- HDU 4882 ZCC Loves Codefires(贪心)
- BNU Online Judge-34777-Magical GCD
- Exploit-Exercises nebule 旅行日志(一)
- 团队作业4——第一次项目冲刺(Alpha版本)2st day
- Hystrix是如何工作的
- RPM Database 实战详解
- nc工具使用
- redis:aof恢复与rdb服务器间迁移
- 错误/异常:java.io.FileNotFoundException: .\src\db.properties (系统找不到指定的路径。);的解决方法
- 数据结构(C语言版)-第7章 查找
- myeclipse从svn导入文件报错:
- [svc]linux正则及grep常用手法
- Openstack入门篇(十七)之Cinder服务-->;安装并配置一个本地存储节点
- POJ 1469 COURSES 二分图最大匹配 二分图
热门文章
- 用computed返回this.$store.state.count,store更改了,但是computed没有调用
- 转: Redis基础总结
- PDF 补丁丁 0.5.0.2731 发布(增加去除页面表单和链接水印功能)
- Spring AOP基本概念
- 数据类型和Json格式(转载)
- Python之路,Day6 - 面向对象学习
- 面试复习(C++)之冒泡排序
- MS SQL提示列名 'Y' 无效的原因及解决办法
- iOS autoresizing布局
- Disable testSuite and testCase on some environment