为什么采用饿汉模式的多个单例类对象启动顺序不定?为什么采用懒汉模式的多个单例类对象启动顺序可以控制?
C++不保证不同翻译单元的non-local static变量的初始化顺序。简而言之,使用饿汉模式,不同源文件的类内的单例对象是不确定的。但是,懒汉模式的static变量定义在函数内部,C++规定,local静态变量在第一次使用时初始化,所以你可以手动调用,控制初始化。
《effectiveC++》第四条对着点略有描述,你可以去看看。