EffectiveC++学习笔记-条款4
来源:互联网 发布:ubuntu 修改系统语言 编辑:程序博客网 时间:2024/05/01 09:03
条款4 确定对象再被使用前以及初始化
但是要注意,赋值和初始化是不一样的!
例如:
class Point{public: Point() { x = 0; y = 1; }private: int x; int y;};
这里的x和y在 构造函数中是属于赋值,而不是初始化。
初始化应该发生在构造函数之前
Point() : x(0),y(1){}
初始化发生的时间更早,发生于这个成员的default构造函数被自动调用的时候,但是对于内置类型例如:int就不一定。对于其他类型例如:string、list<>类型都遵守这个规则。
通常来说,这样初始化的效率更高。
class成员变量总是以其声明的顺序被初始化,但是C++对于定义在不同编译单元的static的初始化顺序并没有明确定义所以最好使用local static对象,代替non-loacl static对象
重点
- 为内置类型对象进行手工初始化,因为C++不保证初始化他们。
- 构造函数最好使用成员初值列,这种方式初始化。
- 最好使用local static对象,代替non-loacl static对象。
阅读全文
0 0
- EffectiveC++学习笔记-条款4
- EffectiveC++学习笔记-条款2
- EffectiveC++学习笔记-条款3
- EffectiveC++学习笔记-条款7
- EffectiveC++学习笔记-条款8
- EffectiveC++学习笔记-条款9
- EffectiveC++学习笔记-条款10
- EffectiveC++学习笔记-条款11
- EffectiveC++学习笔记-条款12
- EffectiveC++学习笔记-条款13
- EffectiveC++学习笔记-条款14
- EffectiveC++学习笔记-条款38
- EffectiveC++学习笔记-条款45
- EffectiveC++学习笔记-条款46
- EffectiveC++学习笔记-条款47
- EffectiveC++学习笔记-条款48
- EffectiveC++学习笔记-条款49
- EffectiveC++学习笔记-条款5|6
- Android进阶之路
- Eclipse 处理svn:ignore忽略文件同步管理
- cacti远程监控原理及简单配置
- 文件的上传与下载
- Android实现一个选择器-recycleview滚动中第一个item位置的获取
- EffectiveC++学习笔记-条款4
- replace用法案例
- Python基础(二)
- 牛腩--基础知识(二)
- jenkins自动化部署安装部署(Windows-SVN版)
- 简单的python代码改造为多线程案例
- ubuntu下搭建svn服务器
- Python Selenium结合使用的一个小例子
- iOS开发-友盟统计使用笔记