经过一番搜索,我了解到我可以调用这样的父方法:
基类:
class Base
{
public:
Base();
child *children; // instance of the child is needed on the base
float theDelegate(char *arg);
然后是儿童班:
class child: public Base //**** problem
{
public:
...
但是当我尝试添加public Base
行时,我收到一条他不知道的错误Base
。
然后我将base
加入 child
,其中包含:
#include "Base.hpp"
这次孩子可以看到父母,但是当我在base
上加child
时,我就会在父母身上收到错误,因为他们互相包含。
child *children; - unknown type name child - appear only if I include parent in the child
我在这里做错了什么?应该怎么做?
答案 0 :(得分:5)
使用前向声明:
File Base.hpp:
class Child; // forward declaration
class Base {
public:
Child* child;
// whatever
};
File Child.hpp:
#include "Base.hpp"
class Child : public Base {
// whatever
};