C++注意事项——1、确保每个对象在使用前已被初始化
来源:互联网 发布:金字塔软件 预警 编辑:程序博客网 时间:2024/06/08 00:59
C是”接近机器的“,通过一系列函数完成过程的实现。
C++是接近问题的,通过一些了的类实现面向问题的解决方案。其关键思想是多态性。
C++对C语言的扩张最为重要的两个概念是面向对象和泛型编程。
注意事项:
1、确保每个对象在使用前已被初始化
CPerson::CPerson(int age ,string name)
{
m_age=age;
m_name=name;
}
这个只是赋值,而不是初始化,因为C++规定对象中成员变量的初始化发生在对象的构造函数之前。
一个较佳的写法是使用成员初始化列表替换赋值动作。
CPerson::CPerson(int age ,string name)
:m_age(age),m_name(name)
{
}
这个与上一个构造函数最终的结果是一样的,但是效率更高。
使用赋值初始化对象变量时,即第一个构造函数,会在构造函数执行前,调用默认构造函数初始化初始化m_age、m_name。
然后再立刻执行赋值操作。而通过初始化列表,避免了该操作。
有些情况下,即使赋值和初始化列表两者效率一样,也得使用初始化列表。
如果成员变量是const 或reference,他们就一定要初始化,而不能被赋值。
C++有固定的初始化顺序:
基类先于子类初始化;
类中的变量总是以变量声明的顺序进行初始化,和成员初始化列表无关,所以在成员初始化列表中初始化各变量时,最好以声明的次序为顺序。
non-local static对象初始化问题:为了避免在对象初始化之前过早地使用它们,
需要:手动初始化内置类型的对象;或者使用成员初始化列表初始化对象的所有成分。
C++中的static对象是指存储区不属于stack和heap、"寿命"从被构造出来直至程序结束为止的对象。这些对象包括全局对象,定义于namespace作用域的对象,在class、function以及file作用域中被声明为static的对象。其中,函数内的static对象称为local static 对象,而其它static对象称为non-local static对象。
- C++注意事项——1、确保每个对象在使用前已被初始化
- 确保对象在使用前得到初始化
- 对象的初始化:确保对象在使用之前被初始化 `
- Effective C++,rule 4,确保对象使用前被初始化
- 确保非局部静态对象在使用前被初始化
- 确保 objects(对象)在使用前被初始化
- 确保非局部静态对象在使用前被初始化
- 确保非局部静态对象在使用前被初始化
- [翻译] Effective C++, 3rd Edition, Item 4: 确保 objects(对象)在使用前被初始化
- Effective C++ (第4项:确保对象在使用前得到初始化)
- effective C++笔记之条款47: 确保非局部静态对象在使用前被初始化
- 确保非局部静态对象使用前被初始化
- 4、确定对象在使用前已被初始化
- [effictive c++] 条款04 确定对象被使用前已被初始化
- 条款4、确定对象在使用前已被初始化
- Effective C++——》条款4:确定对象使用前已先被初始化 .
- item4: 确定对象在使用前已先被初始化
- 对象在使用之前的初始化
- jafka环境搭建步骤--实例可用
- 含有random指针的链表复制
- FineReport图表综合介绍
- ubuntu环境变量设置
- Ajax不执行success回调函数
- C++注意事项——1、确保每个对象在使用前已被初始化
- 安卓开发startservice 和bindservice详解
- jQuery对元素进行拖拽并重新排序的案例
- Android 动画原理
- Class.forName的作用以及为什么要用它
- RMI几种发布和引用服务的方式
- Outlook 获取联系人名片对象为空
- Win2003服务器配置404错误不起作用的解决办法
- 第二章《线性表的实验》