为了账号安全,请及时绑定邮箱和手机立即绑定

在C ++中对typedef的前向声明

在C ++中对typedef的前向声明

C++
三国纷争 2019-10-25 11:13:23
为什么编译器不让我向前声明typedef?假设这是不可能的,那么使我的包含树变小的最佳实践是什么?
查看完整描述

3 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

您可以转发typedef。但是要做


typedef A B;

您必须先转发声明A:


class A;


typedef A B;


查看完整回答
反对 回复 2019-10-25
?
呼唤远方

TA贡献1856条经验 获得超11个赞

对于像我这样的人,他们希望向前声明使用typedef定义的C样式结构,在某些C ++代码中,我找到了一种解决方法,如下所示:


// a.h

 typedef struct _bah {

    int a;

    int b;

 } bah;


// b.h

 struct _bah;

 typedef _bah bah;


 class foo {

   foo(bah * b);

   foo(bah b);

   bah * mBah;

 };


// b.cpp

 #include "b.h"

 #include "a.h"


 foo::foo(bah * b) {

   mBah = b;

 }


 foo::foo(bah b) {

   mBah = &b;

 }


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 599 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信