std :: initializer_list <double>を使用してコンストラクターを作成する方法

ナディーン

私は現在、クラスとコンストラクターについて学んでいます。

class Container
{

....

public:
    // constructors
    Container() {
        length = 0;
        data = nullptr;
        print("default constructor");}

    Container(int lenght){
        data = new double[lenght];
    }


   // destructor

    // operators
    void print(const std::string& info) const
    {
        // print the address of this instance, the attributes `length` and
        // `data` and the `info` string
        std::cout << "  " << this << " " << length << " " << data << "  "
            << info << std::endl;
    }

private:
    int length;
    double* data;
};

私はすでに2つのコンストラクターを作成しました。追加のコンストラクターを作成する必要があります。私は次の指示を受けました。

std :: initializer_listを受け取るコンストラクターを作成します。リストには、データ配列の値が含まれています。コンストラクター委任を使用して、このコンテナーの長さを設定し、データを割り当てます。次に、リストのすべての要素をデータにコピーします。

建設代表団に問題があります。新しいコンストラクターが引数を取る場合。長さを委任する必要がある以前の構造はどのようになっていますか(入力変数はintのみであるため)。その上、データの割り当てとコピーについて混乱しています。

誰かが私にこの問題に取り組むのを助けるための例を教えてもらえますか?

ありがとう、ナディーン:)

テッド・リンモ

委任は、メンバー初期化子リストの使用に似ています。

例:

#include <algorithm>         // std::copy
#include <initializer_list>

// ...

    Container(std::initializer_list<double> il) :
        Container(il.size())  // delegate to  Container(int length)
    {
        std::copy(il.begin(), il.end(), data); // copy the data
    }

また、委任先のコンストラクターは現在、長さを保存しないことに注意してください。次のように書き直すことができます。

    Container(int len) : // use the member initializer list
        length(len),
        data(new double[length])
    {
    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

あいまいさを作成せずにstd :: initializer_listコンストラクターを使用しますか?

分類Dev

clangでstd :: initializer_listを返す

分類Dev

C ++ std :: initializer_listの使用法

分類Dev

std :: initializer_listを取るコンストラクターでクラスを設計する方法は?

分類Dev

std :: initializer_listコンストラクター

分類Dev

コンストラクターでのstd :: initializer_list変換

分類Dev

Implementation of std::initializer_list

分類Dev

std :: initializer_listを使用した明示的なコンストラクターと初期化

分類Dev

initializer_listエラーからstd :: mapを構築する

分類Dev

適切なstd :: initializer_listコンストラクターの書き方

分類Dev

テンプレートクラスのコンストラクタ引数としてのstd :: initializer_list

分類Dev

std :: initializer_listをメンバー変数として使用する

分類Dev

二重空の中括弧{{}}が、ゼロではなく1つの要素を持つstd :: initializer_list <double>を作成するのはなぜですか?

分類Dev

C配列をstd :: initializer_listに変換する方法は?

分類Dev

std :: initializer_listを使用せずにテンプレート化されたクラスをリストして、サイズを固定する方法

分類Dev

constexprコンテキストでのstd :: initializer_listの検証

分類Dev

std :: initializer_listを使用した奇妙な動作constexpr

分類Dev

initializer_listをstd :: arrayに割り当てます

分類Dev

std :: initializer_list <char const *>からstd :: vector <std :: string>を構築する方法

分類Dev

複数のタイプを持つstd :: initializer_list

分類Dev

std :: initializer_listコンストラクターと「ブレース初期化」に関する問題

分類Dev

cスタイルの文字列用のstd :: initializer_listコンストラクターの作成

分類Dev

constexpr std :: initializer_listのコンパイル時検証

分類Dev

動的サイズのstd :: initializer_listの構築、パートII

分類Dev

std :: initializer_listの実装

分類Dev

std :: initializer_listの実装

分類Dev

std :: initializer_listと参照型

分類Dev

std :: initializer_listオブジェクトとしての抽象クラス

分類Dev

関数パラメーターとしての配列とstd :: initializer_list

Related 関連記事

  1. 1

    あいまいさを作成せずにstd :: initializer_listコンストラクターを使用しますか?

  2. 2

    clangでstd :: initializer_listを返す

  3. 3

    C ++ std :: initializer_listの使用法

  4. 4

    std :: initializer_listを取るコンストラクターでクラスを設計する方法は?

  5. 5

    std :: initializer_listコンストラクター

  6. 6

    コンストラクターでのstd :: initializer_list変換

  7. 7

    Implementation of std::initializer_list

  8. 8

    std :: initializer_listを使用した明示的なコンストラクターと初期化

  9. 9

    initializer_listエラーからstd :: mapを構築する

  10. 10

    適切なstd :: initializer_listコンストラクターの書き方

  11. 11

    テンプレートクラスのコンストラクタ引数としてのstd :: initializer_list

  12. 12

    std :: initializer_listをメンバー変数として使用する

  13. 13

    二重空の中括弧{{}}が、ゼロではなく1つの要素を持つstd :: initializer_list <double>を作成するのはなぜですか?

  14. 14

    C配列をstd :: initializer_listに変換する方法は?

  15. 15

    std :: initializer_listを使用せずにテンプレート化されたクラスをリストして、サイズを固定する方法

  16. 16

    constexprコンテキストでのstd :: initializer_listの検証

  17. 17

    std :: initializer_listを使用した奇妙な動作constexpr

  18. 18

    initializer_listをstd :: arrayに割り当てます

  19. 19

    std :: initializer_list <char const *>からstd :: vector <std :: string>を構築する方法

  20. 20

    複数のタイプを持つstd :: initializer_list

  21. 21

    std :: initializer_listコンストラクターと「ブレース初期化」に関する問題

  22. 22

    cスタイルの文字列用のstd :: initializer_listコンストラクターの作成

  23. 23

    constexpr std :: initializer_listのコンパイル時検証

  24. 24

    動的サイズのstd :: initializer_listの構築、パートII

  25. 25

    std :: initializer_listの実装

  26. 26

    std :: initializer_listの実装

  27. 27

    std :: initializer_listと参照型

  28. 28

    std :: initializer_listオブジェクトとしての抽象クラス

  29. 29

    関数パラメーターとしての配列とstd :: initializer_list

ホットタグ

アーカイブ