C ++ 11が導入一般的に使用される機能 - リストの初期化

まず、初期設定のリスト

次のように1)C ++ 11は、予め、初期いくつかの異なる形式で定義されました。

  intデータ= 0; //代入の初期化

  intデータ= {0}; //初期化ブレース

  intデータ(0); //初期設定

2)C ++括弧の形を初期化する古い構文は、初期化構文のリスト、異なる初期化形態の統合に基づいて設計された11

  A)データ型の変数の初期化リスト{}

  //集計タイプ

  構造体Persion

  {

    文字名[64]。

    構造体日//メンバーは、型を重合させます

    {

      int型の年。

      int型月;

      int型日;

    }年齢;

  }。

  //

  クラスの学生

  {

  公:

    学生(int型の年、int型月、int型日):_year(年)、_月(月)、_日(日){}

    友達のstd :: ostreamに&演算子<<(STD :: ostreamに&OS、学生のconst&S)

    {

      OS << s._year << " - " << s._month << " - " << s._day。

    }

  民間:

    int型_year;

    int型_month;

    int型_day;

  }

 

  メインint型()

  {

    int型{1}。

    std :: coutの<< <<はstd ::てendl;

 

    ダブルB {1.1}。

    std :: coutの<< B <<はstd ::てendl;

    //重合のタイプ(任意の型の配列)

    INT C [] {1,2,3,4,5}。

    コピー(C、C +はsizeof(C)/はsizeof(C [0])、ostream_iterator <decltype(* C)>(COUT、 "「));

    std :: coutの<<はstd ::てendl;

    //

    Persion persion { "张三"、2019,11,14}。

    std :: coutの<< persion.name << persion.year << persion.day <<はstd ::てendl;

 

    学生の学生{2019,11,14};

    std :: coutの<<学生<<はstd ::てendl;

  }

  集計タイプ

  1)任意の型の配列を

  2)クラス満たす特定の条件:

    a)のカスタムコンストラクタなし

    b)に無私または保護された非静的メンバ変数があります

    C)いいえ基本クラス

    D)非仮想関数

    E)の「=」または「{}」は、非静的メンバ変数が初期化され豊富クラス宣言部無し

  3)重合の要素またはメンバーの種類のポリマー型であってもよいが、非ポリマー型であってもよいです

  4)重合リストの初期化、パラメータの初期化などのリストに対応する値のタイプを使用する、適切なコンストラクタを呼び出します。

 

おすすめ

転載: www.cnblogs.com/zhangnianyong/p/11858752.html