在我的代码中,我有一个 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 Error] VisualForm.cpp(331): E2316 'genericLine' is not a member of 'TInfluenceDiagram'”
这个stackoverflow问题是类似的:编译器说变量不是类的成员 但我已经尝试按照最佳答案中的建议更改包含的顺序,但无济于事,所以我将其发布为一个新问题。任何帮助将不胜感激。