我正在使用 g++ 在 linux 上编程,我经常遇到需要在头文件中使用类或数据类型的问题,我稍后会在头文件或另一个头文件中定义。
例如看这个头文件:
class example
{
mydatatype blabla;
};
struct mydatatype
{
int blablainteger;
char blablachar;
};
这将给出错误,因为 mydatatype 在定义之前使用,所以通常我会这样更改它:
struct mydatatype; // <-- class prototype
class example
{
mydatatype *blabla; // <-- now a pointer to the data type
// I will allocate the data during runtime with the new operator
};
struct mydatatype
{
int blablainteger;
char blablachar;
};
现在它起作用了。我通常可以只将定义放在上面,或者包含需要的标题,但我不想在标题中包含标题或玩弄定义顺序,它总是会变得混乱。
我展示的解决方案通常有效,但现在我遇到了一个新现象。这次数据类型不是类而是 typedef,我不能为 typedef 使用原型,我不想使用 typedef 包含的实际数据类型。它也很混乱。
有什么解决办法吗?