我有myclassA
和myClassB
。我想将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
}
如何解决错误?
答案 0 :(得分:2)
不需要在标题myclassA
中包含标题myclassB或者您可以创建一个包含声明的单独标头
类MyClassA; class MyClassB;
然后将此标题包含在其他两个中。
答案 1 :(得分:2)
您需要在class myclassB;
中声明myclassa.h
。