您的位置:首页 > 编程语言 > C语言/C++

effective c++条款4(确定对象被使用前先被初始化)

2017-04-08 22:15 309 查看
确保声明的变量都要先初始化,若不初始化,会产生异常值



初始化的方式有手动初始化或者用input stream初始化

除了内置类型之外,我们写的构造函数也要确保将对象的每个成员初始化

初始化和赋值的区别





一个是用等号,一个是用括号,效果是一样的,但是用括号效率更高

若指定空为初始化实参,可构造一个无参构造函数



赋值和初始化很类似,但是如果成员变量是const或者reference,那么就一定要是用初始化(使用括号),避免这样的问题的方法就是总使用初始化方式。

初始化的顺序是固定的,基类早于派生类被初始化,而类中的成员变量是以声明顺序被初始化的





除非tfs先于tempdir被初始化,否则构造函数会使用没有初始化的tfs

如何实现呢?

c++对于不同编译单元的non-local-static对象的初始化顺序没有定义



解决的办法就是让该对象在函数内声明为static,并返回引用。这样就可以用实例确定初始化的顺序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: