C++ 構(gòu)造函數(shù)

2023-03-20 16:22 更新

我們?cè)诘诰耪轮袑懙牧硪粋€(gè)函數(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;
} 

當(dāng)然,我們要能夠?yàn)槊糠N新類型創(chuàng)建新的對(duì)象。事實(shí)上,像makeTime這樣的函數(shù)是如此普遍,以至于有一種針對(duì)它們的特殊函數(shù)語(yǔ)法。這些函數(shù)被稱為構(gòu)造函數(shù),語(yǔ)法看起來(lái)是這樣的:

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ù)并沒有改變。

其次,請(qǐng)注意我們并不需要?jiǎng)?chuàng)建一個(gè)新的time對(duì)象,也不需要返回任何東西。這兩步都是自動(dòng)處理的。我們可以使用關(guān)鍵字this或者此處使用的隱式方式來(lái)引用新對(duì)象----我們構(gòu)造的那個(gè)對(duì)象。當(dāng)我們給hour,minute,second寫入值時(shí),編譯器知道我們引用的是新對(duì)象的實(shí)例變量。

我們使用介于變量聲明和函數(shù)調(diào)用之間的語(yǔ)法來(lái)調(diào)用此構(gòu)造函數(shù):

Time time (seconds);

這條語(yǔ)句聲明了一個(gè)Time類型的變量time,并調(diào)用我們剛寫的構(gòu)造函數(shù),把seconds的值作為參數(shù)傳遞給構(gòu)造函數(shù)。系統(tǒng)為新對(duì)象分配空間,而構(gòu)造函數(shù)初始化了它的實(shí)例變量。結(jié)果賦給了變量time。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)