在包含该类列表的结构之后定义的 C++ 类

标签 c++ list class declaration

<分区>

我有一个父虚拟类(及其子类,但这些不是问题)

//---------------------------------------------------------------------
class TPowerComponent
{
public :
    int X, Y, Rotation;
    __fastcall TPowerComponent( PowSymbType AType );
    __fastcall TPowerComponent( TStream& S );
    virtual void __fastcall Store( TStream& S );
    __fastcall ~TPowerComponent();
    virtual void __fastcall Paint(TCanvas * Canvas, const WorkSheetInfoRec& WSInfo);        // se dessine
};

它的一个方法(paint)使用了一个 WorkSheetInfoRec 结构,它在上面定义为:

struct WorkSheetInfoRec {
    int WSOpt, Study;
    std::list<TPowerComponent*> NetWorkList;
};

问题是这个结构使用了父类的objectz列表,它有一个方法(paint)也引用了一个使用列表的结构...... 所以编译失败,因为每个都必须在另一个之前声明.. 我如何在头文件中处理它。

谢谢

最佳答案

使用前向声明:

class TPowerComponent;
struct WorkSheetInfoRec {
    int WSOpt, Study;
    std::list<TPowerComponent*> NetWorkList;
};

关于在包含该类列表的结构之后定义的 C++ 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47984495/

相关文章:

c++ - 错误: conflicting declaration - cant a pointer be an int?

c++ - Ubuntu 中的 "int"

list - Haskell——检查列表的最后一项

从其他列表中提取的 SharePoint 列表

php - 如何使用数组 php 中的变量调用类?

php - 为什么在 Wordpress 插件的类中使用 $this 会引发 fatal error ?

c++ - 数组声明和大小初始化(C++)

java - 是否可以制作一个调用 jdbc 的 Java JNI?

list - 用Erlang从列表中拆分几个头的最佳方法?

C++复制构造函数运行时错误