我有一个很大的头文件(〜10000行),这是由我的控制脚本/程序自动生成的。正向声明一个typedef
为了避免包括在我的课的申报文件,我向前声明几种类型,我需要:
--myclass.h
namespace bl {
class TypeA;
class TypeB;
}
// Other stuff and myclass definition...
现在事实证明,TypeA
和TypeB
不是类的名字,但自动生成的文件中,而不是被定义为:
typedef SomeUnspecifiedClassName TypeA;
typedef AnotherUnspecifiedClassName TypeB;
凡SomeUnspecifiedClassName
我的意思我不能转发 - 声明此类型名称,因为它可能会在各种情况下更改。
我该如何转发 - 声明typedef? (不能使用c + + 11)
你可以通过引用和指针使用该类吗? http://stackoverflow.com/questions/553682/when-to-use-forward-declaration – 2013-04-29 20:45:58
在您的最后一句话中,您的具体问题的答案已经在第一个相关问题中得到了解答:http://stackoverflow.com/questions/804894/forward-declaration-of-a-typedef-in -c?rq = 1 – jxh 2013-04-29 20:46:08
根据TypeA和TypeB的使用位置,可以考虑将'myclass'重构为模板。 – jxh 2013-04-29 20:53:38