This question already has answers here:
Circular Dependency in C++

(5个答案)


7年前关闭。




我有myclassAmyClassB。我想将ClassA对象传递到ClassB的构造函数中。因此我将A的 header 包含在B中,而B的 header 包含在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
}

我该如何解决错误?

最佳答案

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

09-11 20:52