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

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

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

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

[code language=”cpp”]
#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();

}
[/code]

另外一種初始化成員的技巧
格式:
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 如何處理網站訪客的留言資料