Effective C++读书笔记05

2012-03-30

1、使用非局部静态对象时要确定它已经有初值

     包括1,定义于全局或命名空间中,2,在某个类内声明为static,3,某个文件范围内定义为static

     对于使用一个对象,应确保其获得初值,而constructor确保这一点,但不同编译单元中,非局部静态对象的初始化次序无法左右

     解决办法:单例设计模式

     将每个非局部静态对象放到一个他专属的函数中,声明为static,令函数传回一个引用

     用户不直接使用非局部静态变量,而是使用函数(以函数内的static object 取代非局部静态变量)

     此时,此函数调用时第一次遇到此对象定义时一定会初始化,传回引用加固了这一点(引用一定指向一个已经初始化的对象上)

2、继承类成员遮掩同名的基类成员函数(即使参数不同)

原文地址:https://www.cnblogs.com/yangtianxing/p/2444480.html