我得到了以下头文件的error: ISO C++ forbids declaration of 'InvalidSig' with no type
,如何解决?
struct args{
InvalidSig* context; //error
string mname;
};
class InvalidSig{
.......
}
答案 0 :(得分:3)
您可以转发声明class InvalidSig
上方:
class InvalidSig;
struct args {
InvalidSig* context;
// ...
};
如果您只想在定义之前使用一次名称,也可以这样做:
struct args {
class InvalidSig* context;
// ...
};
我建议尽量避免使用后者,因为前者更常见,并且对于阅读代码的人来说不那么容易混淆。