[類別] 建構元的引數預設值

跟函數相同
建構元的引數也可以設定預設值
一樣的

當建構元有一串引數時
加入預設值的順序是由右至左
實際的引數會由左至右指定給對應的引數

 
另外提醒
如果要全部設為預設引數時
格式:
 
(X) 類別名稱  物件名稱 ( );
 
(O)  類別名稱  物件名稱;
 
而且我們發現
如果引數都有建立預設值的話
其實「預設建構元」就不再需要
也不能留著
不然編譯器會無法判定該使用哪個建構元
 
Ex:
#include <iostream>
using namespace std;

class time
{
 public:
  time (int,int,double);
  void show(void);
 
 private:
  int hour;
  int minute;
  double second;


}; 

//建立建構元預設值 
time::time (int a=8,int b=8,double c=8.8){
   
 hour=a;
 minute=b;
 second=c;
   
}

void time::show(){
 
 cout << hour << " : " << minute << " : " << second << endl;
 
}

int main(){
 
 time t1(12,12,12); 
 t1.show();
 
 time t2(10,10);
 t2.show();
 
 time t3(9);
 t3.show();
 

 
}
另外一種初始化成員的技巧
格式:
time (int a=8,int b=8,double c=8.8):hour(a),minute(b),second(c){
}
hour(a),minute(b),second(c):
相當於設定
hour=a;
minute=b;
second=c;

有疑問? 留個言吧!

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料