classX'没有命名类型

时间:2013-11-20 21:52:39

标签: c++ class compiler-errors

我有myclassAmyClassB。我想将ClassA对象传递给ClassB的构造函数。因此,我将A的标头添加到B,将B的标头添加到A,但我收到此错误

'myclassB' does not name a type

以下是我简化的代码:

myclassa.h

#ifndef XMLHANDLER_H
#define XMLHANDLER_H
#include "mainwindow.h"
#include "myclassb.h"

class myclassA{
public:
    myclassA();

private:
    myclassB *mb;
};
#endif // XMLHANDLER_H

myclassb.h

#ifndef CLASSB_H
#define CLASSB_H
#include "myclassa.h"

class myclassB{
public:
    myclassB(myclassA *newclass);
    ~myclassB();
};
#endif // CLASSB_H

myclassa.cpp

#include "myclassa.h"

myclassA::myclassA(){}

myclassb.cpp

#include "myclassb.h"

myclassB::myclassB(myclassA *newclass)
{
    //do something
}

如何解决错误?

2 个答案:

答案 0 :(得分:2)

不需要在标题myclassA

中包含标题myclassB

或者您可以创建一个包含声明的单独标头

类MyClassA; class MyClassB;

然后将此标题包含在其他两个中。

答案 1 :(得分:2)

您需要在class myclassB;中声明myclassa.h