在我的代码中,我有一个VisualForm.h / .cpp文件,需要访问MainWindow.h / .cpp中的私有成员。
我的MainWindow.h包含以下(相关)文件:
#include "connLines.h"
#include "nodeShapes.h"
#include "VisualForm.h"
我的MainWindow.h包含一个类TInfluenceDiagram,其中包含列出的公共成员:
class TInfluenceDiagram : public TForm
{
public: // members
connLine genericLine;
int tempSaveX, tempSaveY;
}
MainWindow.cpp声明一个指向所创建窗口的指针:
TInfluenceDiagram *InfluenceDiagram;
connLine是我在connLines.h / .cpp文件中定义的类。
我的VisualForm.h按此顺序包含以下相关文件:
#include "connLines.h"
#include "MainWindow.h"
并包含此结构:
struct connProperties{
connLine conn;
TPoint linepoints[2];
}connProperties;
在我的VisualForm.cpp文件中,我收到了错误。此文件需要访问MainWindow的genericLine公共成员,但我的编译器告诉我它不是TInfluenceDiagram的成员。 以下是产生错误的函数:
void __fastcall TVisualPropertiesForm::Button1Click(TObject *Sender)
{
InfluenceDiagram->tempSaveX = 0; //This public member is accessed just fine
InfluenceDiagram->genericLine = connProperties.conn;; //Error here
}
我在C ++ Builder XE8中遇到的确切错误是: " [bcc32错误] VisualForm.cpp(331):E2316' genericLine'不是TInfluenceDiagram'"
的成员此stackoverflow问题类似:Compiler saying variable is not a member of class when it is 但我已经尝试改变顶部答案中建议的包含顺序,但无济于事,所以我将此作为一个新问题发布。任何帮助将不胜感激。