将父类指针传递给child

时间:2013-06-22 16:26:55

标签: qt class methods properties parent-child

我有两个类声明如下,但我得到编译错误,似乎是由于循环#include。有谁知道如何解决这个问题?

我的目的是让子类保持指向父类的指针,以便子进程可以访问父进程的方法和属性。

#ifndef PARENT_H
#define PARENT_H
#include "child.h"

class Parent
{
public:
    Child* mychild;
    Parent();
};

#endif // PARENT_H


#ifndef CHILD_H
#define CHILD_H
#include "parent.h"
class Child
{
public:
    Parent* myparent;
    Child();
};

#endif // CHILD_H

1 个答案:

答案 0 :(得分:2)

只要您只存储指向该类的指针,您就不需要在标题中提供完整的类定义,您可以使用前向类声明,如下所示:

#ifndef PARENT_H
#define PARENT_H

class Child;

class Parent
{
public:
    Child* mychild;
    Parent();
};

#endif // PARENT_H


#ifndef CHILD_H
#define CHILD_H

class Parent;

class Child
{
public:
    Parent* myparent;
    Child();
};

#endif // CHILD_H

然后必须在child.cpp中包含parent.h,在parent.cpp中包含child.h。