0

在我的代码中,我有一个 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问题是类似的:编译器说变量不是类的成员 但我已经尝试按照最佳答案中的建议更改包含的顺序,但无济于事,所以我将其发布为一个新问题。任何帮助将不胜感激。

4

0 回答 0