W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
之前我們使用大括號(hào)聲明并初始化了一些Time結(jié)構(gòu):
Time currentTime = { 9, 14, 30.0 };
Time breadTime = { 3, 35, 0.0 };
現(xiàn)在,通過(guò)使用構(gòu)造函數(shù),我們能用另一種方式來(lái)聲明和初始化:
Time time (seconds);
這兩個(gè)函數(shù)展現(xiàn)了不同的編程風(fēng)格,以及在C++歷史上不同的觀點(diǎn)??赡苁浅鲇谶@個(gè)原因,C++編譯器要求你使用其中一個(gè),而不能在一個(gè)程序中同時(shí)使用。
如果你為結(jié)構(gòu)體定義了一個(gè)構(gòu)造函數(shù),那么你需要使用構(gòu)造函數(shù)來(lái)初始化該類型的所有新的結(jié)構(gòu)。不再允許使用花括號(hào)的那種語(yǔ)法。
幸運(yùn)的是,使用重載函數(shù)的方式來(lái)重載構(gòu)造函數(shù)是合法的。換句話說(shuō),可以存在多個(gè)構(gòu)造函數(shù)具有相同的"名字",只要它們的參數(shù)不同就行。當(dāng)我們初始化一個(gè)新的對(duì)象時(shí),編譯器會(huì)嘗試找到具有合適參數(shù)的構(gòu)造函數(shù)。
例如,一個(gè)構(gòu)造函數(shù)為每個(gè)實(shí)例變量
Time::Time (int h, int m, double s)
{
hour = h; minute = m; second = s;
}
我們使用以前的語(yǔ)法來(lái)調(diào)用這個(gè)構(gòu)造函數(shù),特殊之處在于形參需要兩個(gè)整型數(shù)和一個(gè)double類型的數(shù):
Time currentTime (9, 14, 30.0);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: