1. 程式人生 > >三種情況必須在類建構函式初始化列表初始化

三種情況必須在類建構函式初始化列表初始化


//const成員的初始化只能在建構函式的初始化列表中進行
//引用成員的初始化也只能在建構函式的初始化列表中進行
class object
{
public:
 object(int num = 0 ,int knum = 0):num_(num),knum_(knum),refnum_(num)
 {
  //num_ = num;         //可在初始化列表中賦值也可以在此處計算段賦值
  //knum_ = knum;     //Error:常量是不能被修改的,必須在初始化列表中賦初值
  //refnum_ = num;    //Error:引用要先在初始化列表中初始化
  cout<<"object..."<<num_<<knum_<<refnum_<<endl;
 }
private:
 int num_;
 const int knum_;      //成員變數是一個常量,未初始化
 int& refnum_;          //成員變數是一個引用,未初始化
};