0

结构定义如下:

 struct Edge {
    int weight;
    Vertex* v1;
    Vertex* v2;
  };

我需要做类似的事情

new Edges(v1, v2, v3);

但这只能通过“类”和使用ctor来完成。如何创建 struct 的新元素并同时对其进行初始化?

谢谢!

4

2 回答 2

2

struct您也可以在 C++ 中为 a 编写构造函数。ACstruct非常有限,但在 C++ 中,和之间只有2 个区别structclass

  1. class所有成员中都是默认的private,在struct所有成员中都是默认的public
  2. struct从defaults继承到publicwhile classdefaults toprivate

谢谢@gil_bz 和@icepack

于 2012-12-11T07:07:52.160 回答
0

您需要创建一个参数化的构造函数。这样做

struct Edge
{
    int weight;
    Vertex* v1;
    Vertex* v2;

    Edge(int a_weight, Vertex *a_v1, Vertex *a_v2)
    {
        weight = a_weight;
        v1 = a_v1;
        v2 = a_v2;
    }
};

然后像这样创建对象:

Edge e(9, v1, v2);
于 2012-12-11T07:13:22.123 回答