effective c++ 条款4:确定对象被使用前已先被初始化
2022/6/18 5:20:06
本文主要是介绍effective c++ 条款4:确定对象被使用前已先被初始化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
确保每一个构造函数都将对象的每一个成员初始化
-
使用member initialization list 替换 assignment:
- 总是在初值列中列出所有成员变量
- base classes比derived classes更早初始化,而class的成员变量总以其声明次序被初始化,即使他们在成员初值列中以不同次序出现,也不会有任何影响
//assignment class tmp { private: int age; double name; public: tmp( const int _age, const double _name) { age = _age name = _name; } } //member initialization list class tmp { private: int age; double name; public: tmp( const int _age, const double _name) : age(_age), name(_name){} }
-
对定义于不同编译单元(产出单一目标文件的源码)内的non-local static对象的初始化序列无明确定义
- 问题:某编译单元内的某个non-local static对象的初始化动作使用了另一编译单元内的某个non-local static对象,而所用的对象可能尚未被初始化
- 解决:将每个non-local static对象转至自己的专属函数内且声明为static,函数则返回reference指向它所含的对象
-
please remember:
- 为内置型对象进行手工初始化
- 构造函数最好使用member initialization list。初值列列出的成员变量,其排序次序和他们在class中的声明次序相同
- 以local static对象替换non-local static对象
这篇关于effective c++ 条款4:确定对象被使用前已先被初始化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14Fetch / Axios学习:入门教程与实战指南
- 2024-11-14Typescript 类型课程入门教程
- 2024-11-14Fetch / Axios课程:初学者必看的网络请求教程
- 2024-11-14Styled-components课程:初学者指南
- 2024-11-13pre-commit 自动化测试课程:入门教程与实践指南
- 2024-11-13什么是AIGC?如何使用AIGC技术辅助办公?
- 2024-11-13Slicm 框架怎么进行用户认证?-icode9专业技术文章分享
- 2024-11-13在查询时将 map_coord 列的值转换为字符串有哪些方法?-icode9专业技术文章分享
- 2024-11-13如何将微信地区改成自定义文案?-icode9专业技术文章分享
- 2024-11-13DNS 缓存存在问题有哪些症状和解决方法?-icode9专业技术文章分享