ホームページ  >  に質問  >  本文

ポインター - C++ 初期化リストで配列を渡すにはどうすればよいですか?

前述したように、以下のコードでは、X と Y は正常に構築できますが、A と B は、 'const int' の 'int []' への代入でエラー [Error] incompatibility type を報告します。

上記の状況で初期化リストに配列を渡す方法を教えてください。
こうして達成されました

リーリー

このようにして、メンバー変数は任意のサイズの配列で初期化されます。

リーリー
巴扎黑巴扎黑2686日前651

全員に返信(2)返信します

  • 黄舟

    黄舟2017-05-16 13:27:27

    std::vector<int>,构造函数接受const std::vector<int> &arr,拷贝用this->o = arrを使用することをお勧めします。

    返事
    0
  • 習慣沉默

    習慣沉默2017-05-16 13:27:27

    この質問は次のように変換できます: どの仮パラメータ形式が初期化リストを渡すことができますか?

    非テンプレート:

    • void foo(T), void foo(const T &),当T可以用初始化列表拷贝初始化时。即初始化T x = {...};合法。

    • void foo(std::initializer_list<T>)

    テンプレート:

    • template <class T> void foo(std::initializer_list<T>)

    • template <size_t N> void foo(const T (&)[N])

    • template <class T, size_t N> void foo(const T (&)[N])、これは C++17 でのみ利用可能と言われていますが、一部のコンパイラはすでにサポートしています。

    コードサンプルには、不可能な一般的な状況がいくつか含まれています。

    配列メンバー変数の初期化: 初期化リストで配列メンバーを初期化する簡単な方法はないようです。コンストラクターの関数本体内で値を割り当てることをお勧めします。しかし、それはテンプレートを使用して実現できます:

    リーリー

    返事
    0
  • キャンセル返事