我有一些这样的代码:
class Class1 {
// some code here
Class2 inverse() {
// some code here
}
};
class Class2 : public Class1 {
// some code here
};
我得到一个错误,即
Class2
在函数inverse
中是未知的。我可以宣布该类(class)吗? 最佳答案
您可以在Class2
之前转发声明Class1
。然后,您必须将inverse
函数声明与定义分开。因此,您应该在定义Class2之后定义它:
class Class2;
class Class1 {
// some code here
Class2 inverse();
};
class Class2: public Class1 {
// some code here
};
Class2 Class1::inverse()
{
return Class2();
}
但是,老实说,这是不好的设计。
关于c++ - 派生类的前向声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16552014/