初始化一个结构,它是另一个结构的成员 - ISO C ++

时间:2014-02-10 18:06:07

标签: c++ struct initialization iso

我有两个结构:

    struct port
{
    bool isOutput;
    bool isConnected;
    int connwires;
};

struct node
{
    port p;
    vector<Wire*> w;
};

我有:

    node *nodes;

在我班上。 问题是如何初始化由:

创建的所有n个节点结构的端口成员(p)
    nodes= new node[n];
类构造函数中的

语句。

(我正在定义这样的端口结构:

    struct port
{
    bool isOutput=0;
    bool isConnected=0;
    int connwires=0;
};

但在“ISO C ++”中无效。 )

感谢。

1 个答案:

答案 0 :(得分:4)

您需要为port提供默认构造函数,以自动初始化其成员

struct port
{
    port() :
        isOutput(false),
        isConnected(false),
        connwires(0)
    { }

    bool isOutput;
    bool isConnected;
    int connwires;
};

请注意,您的上一个代码是有效的,并且符合您自C ++ 11以来的预期。