正如标题所说.我如何创建一个全局可用的类的实例(例如,我有一个打印的仿函数,我希望有一个这样的全局实例(虽然可以创建更多)).
使用通常的模式制作单个对象的所有努力都没有解决问题的第二部分 - 如果需要可以制作更多的东西.单身"模式"是非常严格的,并且不仅仅是另一个名称的全局变量.
// myclass.h class MyClass { public: MyClass(); void foo(); // ... }; extern MyClass g_MyClassInstance; // myclass.cpp MyClass g_MyClassInstance; MyClass::MyClass() { // ... }
现在,在任何其他模块中只需像往常一样包含myclass.h
和使用g_MyClassInstance
.如果您需要制作更多,可以使用构造函数进行调用.