程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++ 11 類成員初始化

c++ 11 類成員初始化

編輯:C++入門知識

c++ 11 類成員初始化


以前不能在類定義中初始化成員? c++11允許這樣做了,其語法類似於下面:
class Session
{
    int mem1 = 10;
    double mem2 {1966.54};
    short mem3;

    public:
      Session();   //#1
      Session(short s) : mem3(s) {}   //#2
      Session(int n, double d, short s) : mem1(n),   mem2(d),mem3(s) {}   //#3

}; 

可以使用等號或大括號版本的初始化, 但不能使用園括號版本初始化。 其結果與給前兩個構造函數提供成員初始化列表, 並指定mem1 和 mem2
的值相同:

Session() : mem1(10), mem2(1996.54) {}
Session(short s) : mem1(10), mem2(1996.54), mem3(s) {}

通過使用類內初始化,可避免在構造函數中編寫重復的代碼, 從而降低了程序員的工作量,厭倦情緒 和出錯機會。

如果構造函數在成員初始化列表中提供了相應的值,這些默認值將會被覆蓋,因此第三個構造函數覆蓋了類內成員初始化。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved