0

C++ コンストラクターを使用したこの投稿の既定のパラメーターを調べ ていて、コンストラクターでのオプションの引数の配置に関して質問がありました。例えば:

Class TestCode {
private:
      int _length;
      int _width;
      int _height;
public:
     TestCode(int length = 5, int width, int height=3):
             _length(length), _width(width),_height(height){

} } ;

// Using the class

  TestCode testRectangle(2);
  TestCode testRectangle2(2,3);

testRectangle オブジェクトは、幅 2 とデフォルトの長さと高さで構築されていますか? testRectangle2 の場合はどうなりますか? パラメータは正しく割り当てられていますか。このあいまいさを考えると、コンストラクターの最後にすべてのオプションパラメーターを含める必要がありますか?

4

3 に答える 3

2

実際、C++ では、すべてのデフォルト パラメータを他のすべてのデフォルト以外のパラメータの後に配置する必要があります。

于 2013-05-30T19:09:49.007 に答える
1

それらを最初に置いても、コードはコンパイルされますか? Afaik それはすべきではありません。

はい、オプションではないパラメーターの後、最後に配置することをお勧めします。また、やむを得ない理由がない場合は、使用頻度の高い順に並べることもお勧めします。

于 2013-05-30T19:09:30.067 に答える