【发布时间】:2022-01-15 16:23:54
【问题描述】:
我有两个类,A类,B类,B类中有一个静态函数,如下所示:
class A {
public:
void method(){ B::method(); }
};
class B {
public:
static int method() {
cout << "method of b" << endl;
}
};
int main()
{
class A a;
a.method();
}
此代码构建错误,因为在A类中,B没有被声明,但我希望A类比B类更早定义,我该怎么办?我以为它可能需要前向声明,但似乎不是这个原因......
【问题讨论】:
-
在定义
B后将函数体移出类。 -
"但是我希望 A 类比 B 类更早定义" 为什么?您希望通过这种方式解决什么问题? “我原以为可能需要提前声明,但似乎不是这个原因……” 你为什么这么认为?您如何尝试使用前向声明?当你尝试这样做时发生了什么?