W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
我們在第九章中寫的另一個函數(shù)是makeTime:
Time makeTime (double secs) {
Time time;
time.hour = int (secs / 3600.0);
secs -= time.hour * 3600.0;
time.minute = int (secs / 60.0);
secs -= time.minue * 60.0;
time.second = secs;
return time;
}
當然,我們要能夠為每種新類型創(chuàng)建新的對象。事實上,像makeTime這樣的函數(shù)是如此普遍,以至于有一種針對它們的特殊函數(shù)語法。這些函數(shù)被稱為構(gòu)造函數(shù),語法看起來是這樣的:
Time::Time (double secs) {
hour = int (secs / 3600.0);
secs -= hour * 3600.0;
minute = int (secs / 60.0);
secs -= minue * 60.0;
second = secs;
}
首先,注意到構(gòu)造函數(shù)名字和類名相同,沒有返回類型。而參數(shù)并沒有改變。
其次,請注意我們并不需要創(chuàng)建一個新的time對象,也不需要返回任何東西。這兩步都是自動處理的。我們可以使用關(guān)鍵字this或者此處使用的隱式方式來引用新對象----我們構(gòu)造的那個對象。當我們給hour,minute,second寫入值時,編譯器知道我們引用的是新對象的實例變量。
我們使用介于變量聲明和函數(shù)調(diào)用之間的語法來調(diào)用此構(gòu)造函數(shù):
Time time (seconds);
這條語句聲明了一個Time類型的變量time,并調(diào)用我們剛寫的構(gòu)造函數(shù),把seconds的值作為參數(shù)傳遞給構(gòu)造函數(shù)。系統(tǒng)為新對象分配空間,而構(gòu)造函數(shù)初始化了它的實例變量。結(jié)果賦給了變量time。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: