sinat_26833407 2015-04-20 07:56 采纳率: 0%
浏览 2072

C++ 类相互包含如何定义?

假如现在有这样两个类a.b,两个类中互相包含:
class a:

        #ifndef a_h
    #define a_h
    #include "b.h"
    class A {
    private:
        B member;
    public:
        B f();
        friend void B::g();
    };
    #endif

class b:

      #ifndef b_h
    #define b_h
    #include "a.h"
    class B {
    private:
        A member;
    public:
        void g();
        A f();
        friend class A;
    };
    #endif

main.cpp

        #include "a.h"
    #include "b.h"
    int main(int argc, char *argv[])
    {return 0};

g++编译出错:
unknown type name ‘A’

请问怎么解决这个问题?
非常感谢!

  • 写回答

3条回答 默认 最新

  • 雨落風輕 2015-04-20 08:06
    关注

    应该在类内部定义指针,实例化B的时候,调用函数来new a.

    评论

报告相同问题?

悬赏问题

  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目