C++学习总结(函数、类与对象)
前言:時(shí)間過(guò)的好快,轉(zhuǎn)眼一學(xué)期就過(guò)去了,期末考試也快到了,所以就復(fù)習(xí)一遍同時(shí)也將自己學(xué)習(xí)的感悟總結(jié)下來(lái)。前面幾章大多與C語(yǔ)言相似,就不總結(jié)了。
第三章——函數(shù)
參數(shù)傳遞
通過(guò)這個(gè)例子,可以看出形參值的改變對(duì)實(shí)參是無(wú)影響的,如果是引用傳遞的話就另當(dāng)別論了,看下面這個(gè)例子。
可以看出,如果使用引用參數(shù)的話是可以改變實(shí)參的值,但要注意:
- 聲明一個(gè)引用時(shí),必須同時(shí)對(duì)它進(jìn)行初始化,使它指向一個(gè)已經(jīng)存在的對(duì)象
- 一旦一個(gè)引用被初始化后,就不能改為指向其他對(duì)象
內(nèi)斂函數(shù)
對(duì)于內(nèi)斂函數(shù),我的理解是就相當(dāng)于一個(gè)類中公有類型的成員函數(shù),只不過(guò)是放在了類外面,需要在函數(shù)返回值類型前加上inline,而且內(nèi)斂函數(shù)大多都是調(diào)用頻率很高,而且代碼是相對(duì)簡(jiǎn)單的。
帶默認(rèn)形參值的函數(shù)
通過(guò)這個(gè)代碼就會(huì)理解帶默認(rèn)形參值的函數(shù),但也有幾點(diǎn)要注意:
- 有默認(rèn)值的形參必須在形參列表的最后,因?yàn)閷?shí)參與形參是按照從左到右的順序建立關(guān)系的。
- 在相同的作用域中,不允許在同一個(gè)函數(shù)的多個(gè)聲明中對(duì)一個(gè)參數(shù)的默認(rèn)值重復(fù)定義。
函數(shù)重載
說(shuō)白了,就是同一個(gè)函數(shù)名,但又不同的功能,這就叫函數(shù)重載,也需注意:
- 函數(shù)重載不以形參名來(lái)區(qū)分函數(shù)
- 函數(shù)重載不以返回值來(lái)區(qū)分函數(shù)
第四章——類與對(duì)象
類的定義:
class 類名稱
{
public:
外部接口
private:
私有成員
};
對(duì)象聲明:
類名 對(duì)象名;
對(duì)象訪問(wèn)數(shù)據(jù)成員:
對(duì)象名.數(shù)據(jù)成員名
對(duì)象調(diào)用函數(shù)成員:
對(duì)象名.函數(shù)成員名(參數(shù)表)
成員函數(shù)的實(shí)現(xiàn):
返回值類型 類名::函數(shù)成員名(參數(shù)表)
{
函數(shù)體
}
例如:
void Clock::setTime(int newH,int newM,int newS) {hour=newH;minute=newM;second=newS;}void Clock::showTime() {cout<<huor<<":"<<minute<<":"<<seconde<<endl;}到這才算剛接觸到C++,這些便是C++訪問(wèn)成員函數(shù)或?qū)ο蟮囊恍┓椒ā?/p>
構(gòu)造函數(shù)
通過(guò)這個(gè)代碼,感覺(jué)構(gòu)造函數(shù)有一般成員函數(shù)的特征,但構(gòu)造函數(shù)有一些特殊的特征:構(gòu)造函數(shù)的函數(shù)名與類名相同,而且沒(méi)有返回值
復(fù)制構(gòu)造函數(shù)
復(fù)制構(gòu)造函數(shù)的一般方法
class 類名
{
public:
類名(形參名);//構(gòu)造函數(shù)
類名(類名 &對(duì)象名);//復(fù)制構(gòu)造函數(shù)
…
};
類名::類名(類名 &對(duì)象名);//復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)
{
函數(shù)體
}
通過(guò)這個(gè)代碼來(lái)了解一下復(fù)制構(gòu)造函數(shù),復(fù)制構(gòu)造函數(shù)擁有一般構(gòu)造函數(shù)的所有特性,而它所不同的是形參是本類的對(duì)象的引用。作用是使用一個(gè)已經(jīng)存在的對(duì)象(由復(fù)制構(gòu)造函數(shù)的參數(shù)指定),去初始化同類的一個(gè)新對(duì)象。這個(gè)概念理解起來(lái)最好是通過(guò)代碼,這樣便于理解。
復(fù)制函數(shù)有三種情況可以被調(diào)用:
- 當(dāng)用類的一個(gè)對(duì)象去初始化該類的另一個(gè)對(duì)象時(shí)。
- 如果函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)時(shí),進(jìn)行形參和實(shí)參的結(jié)合時(shí)。
- 如果函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行完成返回調(diào)用者時(shí)。
析構(gòu)函數(shù)
構(gòu)造對(duì)象時(shí),構(gòu)造函數(shù)中分配了資源,動(dòng)態(tài)申請(qǐng)了一些內(nèi)存單元,在對(duì)象消失時(shí)需要釋放這些內(nèi)存單元。而析構(gòu)函數(shù)就用來(lái)完成對(duì)象被刪除前的一些清理工作。析構(gòu)函數(shù)是在對(duì)象的生產(chǎn)期即將結(jié)束的時(shí)刻被自動(dòng)調(diào)用的。而且析構(gòu)函數(shù)不接收任何參數(shù)。
總結(jié)
以上是生活随笔為你收集整理的C++学习总结(函数、类与对象)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Bugku—MISC题总结
- 下一篇: 块语法Block在MVC思维的妙用之多重