{ printf("CallManager Destructed...\n"); } private: CallManager(){//注意这个为私有 printf("CallManager Constructed...\n"); } };请注意虽然我将函数的实现写在了类的声明里面,但是请注意这并不是我本意。我是为了简单,其实应该分成h和cpp文件的,这样可以降低编译依赖,而且默认内联也不是我们想要的,具体的细节不再赘述。 main驱动程序: [cpp] #include #include int main(){ CallManager* pCallManager = CallManager::GetInstance(); CallManager* pCallManager2 = CallManager::GetInstance(); assert(pCallManager == pCallManager2);//确认是完全一样 return 0; }
#include #include int main(){ CallManager* pCallManager = CallManager::GetInstance(); CallManager* pCallManager2 = CallManager::GetInstance(); assert(pCallManager == pCallManager2);//确认是完全一样 return 0; } 输出结果: [cpp] CallManager Constructed... CallManager Destructed...
CallManager Constructed... CallManager Destructed...与我们所想一致,由初始化构建,只构建一次,在main结束之后被自动释放。Wonderful。
后记: 不知道我的这种叙述方式会不会有点过于口语化了,我只想把我在学习它的时候的所得所思所获说出来,跟大家探讨一下,有些经验希望能给大家带来哪怕小小的帮助,描述的过程同样是我再次回顾我的思路的过程,有错误欢迎指出,让我也纠正我的错误,谢谢。
|