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