4

C++ のコンストラクタと Eiffels の create プロシージャ宣言の違いは何ですか?

1 つのクラスに対して複数のコンストラクター関数を使用できることには、どのような価値がありますか? それとも、Eiffels の「作成」には他に何か利点がありますか?

ありがとうございました

4

1 に答える 1

3

C ++では、コンストラクターをオーバーロードできるため、複数のコンストラクターを定義することもできます。

EIFFELのようにコンストラクター・プロシージャーを持つことには、同じシグニチャー(つまり、同じ数とタイプの引数)を持つ異なるコンストラクターを定義できるという利点があります。

クラスを想像してみてくださいTriangle。3つの辺の長さ(3つのfloat値)を指定するか、2つの辺と囲み角度(3つのfloat値)を指定して三角形を作成することもできます。

C ++では、追加のパラメーター(たとえば、「構築モード」の列挙値)を定義する必要があります。EIFFELでは、異なる名前で2つの構築手順を定義するだけです。

于 2012-01-13T19:05:23.860 に答える