结构的定义如下:
struct Edge {
int weight;
Vertex* v1;
Vertex* v2;
};
我需要做类似
的事情new Edges(v1, v2, v3);
但这只能通过“类”和使用ctor来完成。如何创建struct的新元素并同时对其进行初始化?
谢谢!
答案 0 :(得分:2)
您也可以在C ++中为struct
编写构造函数。 C struct
非常有限,但在C ++中,struct
和class
之间仅存在2 differences。
class
private
所有成员默认为struct
,public
所有成员默认为struct
。 public
继承默认为class
而private
默认为{{1}} 感谢@gil_bz和@icepack
答案 1 :(得分: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);