' genericLine'不是TInfluenceDiagram'的成员。但它是

时间:2017-02-17 23:52:36

标签: c++ compiler-errors c++builder-xe8

在我的代码中,我有一个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 但我已经尝试改变顶部答案中建议的包含顺序,但无济于事,所以我将此作为一个新问题发布。任何帮助将不胜感激。

0 个答案:

没有答案