none
extern 问题 RRS feed

  • 问题

  • 情况是这样的:
    a.cpp:
    class icls
    {
      //声明加定义
    };
    a.h:
    extern class icls;
    我在b.cpp中:
    #include "a.h"
    但是在b文件中使用icls时会说找不到这个类型.
    这种情况的确比较怪异,我只是维护代码一部分...别问我为什么非要这么做....
    请各位多多指教!指点迷津!
    2011年7月22日 3:25

答案

  • 你不能extern一个类型。只能extern 一个 实例。

    例如在别的地方

    extern icls instance;

    你就可以在b.cpp中通过extern icls instance;使用它。


    麻烦把正确答案设为解答。
    • 已标记为答案 Ferdin.Lee 2011年7月22日 3:40
    2011年7月22日 3:35
    版主

全部回复

  • 你不能extern一个类型。只能extern 一个 实例。

    例如在别的地方

    extern icls instance;

    你就可以在b.cpp中通过extern icls instance;使用它。


    麻烦把正确答案设为解答。
    • 已标记为答案 Ferdin.Lee 2011年7月22日 3:40
    2011年7月22日 3:35
    版主
  • 如果我想其他文件知道这种类型,改怎么办?
    2011年7月22日 3:41
  • 你可以在其他编译单元

    class icls;

    让他们知道这是一个类。但是只有让他们看到类的声明,才知道这个类。


    麻烦把正确答案设为解答。
    2011年7月22日 6:04
    版主