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

为什么编译器不让我向前声明typedef?


假设这是不可能的,那么使我的包含树变小的最佳实践是什么?


三国纷争
浏览 600回答 3
3回答

皈依舞

您可以转发typedef。但是要做typedef A B;您必须先转发声明A:class A;typedef A B;

呼唤远方

对于像我这样的人,他们希望向前声明使用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; }
打开App,查看更多内容
随时随地看视频慕课网APP