【发布时间】:2012-12-19 20:10:15
【问题描述】:
C++ 新手,在调用另一个类的函数时遇到问题。
B 类继承自 A 类,我希望 A 类能够调用在 B 类中创建的函数。
using namespace std;
class B;
class A
{
public:
void CallFunction ()
{
B b;
b.bFunction();
}
};
class B: public A
{
public:
virtual void bFunction()
{
//stuff done here
}
};
在屏幕上看起来一切正常(没有明显的错误),但是当我尝试编译它时,我得到一个错误 C2079 'b' uses undefined class B.
我尝试让它们成为指针/friends,但我遇到了同样的错误。
【问题讨论】:
-
你能显示完整的代码吗?
-
@AlokSave 不起作用,他从 A 类继承......他需要将他的接口分别从他的实现中拆分为 .h 和 .cpp 文件。和
#include "B.h"在A.cpp -
看起来像一个循环依赖。
B类需要A类的功能,因为它继承了A。但是,A类需要B类的功能才能正确使用CallFunction方法。必须首先定义其中一个类。