错误:ISO C ++禁止声明''没有类型

时间:2015-03-16 19:45:09

标签: c++ struct

我得到了以下头文件的error: ISO C++ forbids declaration of 'InvalidSig' with no type,如何解决?

struct args{
    InvalidSig* context; //error
    string mname;
};

class InvalidSig{
    .......
}

1 个答案:

答案 0 :(得分:3)

您可以转发声明class InvalidSig上方:

class InvalidSig;

struct args {
    InvalidSig* context;
    // ...
};

如果您只想在定义之前使用一次名称,也可以这样做:

struct args {
    class InvalidSig* context;
    // ...
};

我建议尽量避免使用后者,因为前者更常见,并且对于阅读代码的人来说不那么容易混淆。