解决方法
使用通常的模式来制作单身对象的所有努力都不是解决你的问题的第二部分 – 如果需要,可以做更多的能力.单例“模式”是非常严格的限制,并不仅仅是一个全局变量另一个名字.
// myclass.h class MyClass { public: MyClass(); void foo(); // ... }; extern MyClass g_MyClassInstance; // myclass.cpp MyClass g_MyClassInstance; MyClass::MyClass() { // ... }
现在,在任何其他模块中只要包含myclass.h,并照常使用g_MyClassInstance.如果你需要做更多的事情,就有一个可以让你打电话的构造函数.