用extern 定义theApp对象,表示此对象原始定义是在别的.cpp文件里定义的,这里只是引用外部定义。实际上也表示了theApp对象是个全局对象。

解决方案 »

  1.   

    在CPP里面定义的对象一定要用extern引用吗?
      

  2.   

    再请教:全局对象是个什么概念?
    在什么地方定义theApp 能得到全局对象?
      

  3.   

        全局对象实际上和全局变量一样,指的是你可能在很多类和文件中都用到某对象,就要把它定义为一个全局对象。
        定义时,不能在类定义里面定义全局对象,而必须在.cpp的开始(#include之后)或.h文件的开始处(类定义前)处定义全局对象。  
        你可以在其中一个.cpp文件中对此对象做原始定义:CMyWinApp theApp;,然后在需要用到此对象的其他文件中用extern定义:extern CMyWinApp theApp; 就行了。
        另外每个用到theApp对象的.cpp都应该把定义CMyWinApp类的.h文件包含进来。
      

  4.   

    假若我去掉 extern 会是什么效果
      

  5.   

    十分感谢caiyi9000(只懂Winsock)为我作这么详尽的解答!
      

  6.   

    去掉extern,编译器会告诉你重复定义变量的错误。