0

構造体は次のように定義されます。

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

私は何かをする必要があります

new Edges(v1, v2, v3);

しかし、それは「クラス」とctorを使用してのみ行うことができました。構造体の新しい要素を作成し、同時に初期化するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

2

structC++でもaのコンストラクターを作成できます。ACは非常に制限されていますが、C ++では、との間に2つの違いstructしかありません。 structclass

  1. classすべてのメンバーがデフォルトprivateで、すべてstructのメンバーがデフォルトですpublic
  2. デフォルトからへの継承、デフォルトstructからへpublicclassprivate

@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 に答える