C++ のコンストラクタと Eiffels の create プロシージャ宣言の違いは何ですか?
1 つのクラスに対して複数のコンストラクター関数を使用できることには、どのような価値がありますか? それとも、Eiffels の「作成」には他に何か利点がありますか?
ありがとうございました
C ++では、コンストラクターをオーバーロードできるため、複数のコンストラクターを定義することもできます。
EIFFELのようにコンストラクター・プロシージャーを持つことには、同じシグニチャー(つまり、同じ数とタイプの引数)を持つ異なるコンストラクターを定義できるという利点があります。
クラスを想像してみてくださいTriangle
。3つの辺の長さ(3つのfloat値)を指定するか、2つの辺と囲み角度(3つのfloat値)を指定して三角形を作成することもできます。
C ++では、追加のパラメーター(たとえば、「構築モード」の列挙値)を定義する必要があります。EIFFELでは、異なる名前で2つの構築手順を定義するだけです。