C++ —— C++类
C++ ——類
?
1、類
?????? 類是具有相同屬性和行為的一組對(duì)象的集合,它為屬于該類的全部對(duì)象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和行為兩個(gè)主要部分。
class Clock { public:void SetTime(int new_hour, int new_minute,int new_second);void ShowTime(); private:int hour, minute, second; };(1)利用類可以實(shí)現(xiàn)數(shù)據(jù)的封裝,隱藏,繼承與派生。
封裝:將抽象出的數(shù)據(jù)成員、代碼成員相結(jié)合,將它們視為一個(gè)整體。目的是增強(qiáng)安全性和簡(jiǎn)化編程,使用者不必了解具體的實(shí)現(xiàn)細(xì)節(jié),而只需要通過外部接口,以特定的訪問權(quán)限,來使用類的成員。實(shí)現(xiàn)封裝:類聲明中的{}
(2)利用類易于編寫大型復(fù)雜程序,其模塊化程度比采用函數(shù)更高。
? 函數(shù):將邏輯上相關(guān)的語句與數(shù)據(jù)封裝,用于完成特定的功能;
? 類:將邏輯上相關(guān)的函數(shù)與數(shù)據(jù)封裝,對(duì)所要處理的問題進(jìn)行描述。
(3)類是C++程序設(shè)計(jì)的核心成分,是C++封裝的基本單元,它把數(shù)據(jù)和函數(shù)封裝在一起。
?
2、類的構(gòu)成
class類名標(biāo)識(shí)符 { public:// 公有成員(外部接口) protected:// 保護(hù)成員 private:// 私有成員 };(1)關(guān)鍵字class表示類,類名標(biāo)識(shí)符一般首字母用大寫字母表示,以示與對(duì)象名的區(qū)別。(2)類的成員分為兩類:數(shù)據(jù)成員和成員函數(shù)。
(3)public、protected、private訪問控制
private(私有成員):只允許類內(nèi)部的成員訪問,任何本類以外的成員(對(duì)象)均不能訪問。
public(公有成員):它們是類與外部的接口,任何外部函數(shù)都可以訪問公有成員。
protected(保護(hù)成員):與private類似,其差別表現(xiàn)在繼承與派生時(shí)對(duì)派生類的影響的不同。
?
3、成員函數(shù)
(1)成員函數(shù)與普通函數(shù)
?????? 成員函數(shù)屬于類,成員函數(shù)定義是類設(shè)計(jì)的一部分,其作用域是類作用域,而普通函數(shù)一般為全局函數(shù)。
?????? 成員函數(shù)的操作主體是對(duì)象,使用時(shí)通過捆綁對(duì)象來行使其職責(zé),而普通函數(shù)被調(diào)用時(shí)沒有操作主體
(2)類中定義成員函數(shù)
?????? 成員函數(shù)的定義代碼可以放在類定義中。類中定義的成員函數(shù)的規(guī)模一般都比較小,語句只有1~5句。在類中定義的成員函數(shù)默認(rèn)為內(nèi)聯(lián)函數(shù),即使沒有明確用inline標(biāo)示。在C++中,類定義通常在頭文件中,因此這些成員函數(shù)定義也伴隨著進(jìn)入頭文件,而內(nèi)聯(lián)函數(shù)是可以放在頭文件中的。
(3)類后定義成員函數(shù)
?????? 將類定義和其成員函數(shù)定義分開,是目前開發(fā)程序的通常做法。
?????? 把類定義(頭文件)看成是類的外部接口;類的成員函數(shù)定義看成是類的內(nèi)部實(shí)現(xiàn)(源文件)。
??? 返回類型類標(biāo)識(shí)符::成員函數(shù)名(參數(shù)表)
??? {}
??? 其中::是作用域區(qū)分符。
如:voidA::Set(int a,int b){}??????
(4)重載成員函數(shù)
?????? 同一個(gè)類的成員函數(shù)可以重載,方法與非成員函數(shù)重載相同。不同類的成員函數(shù)同名,不是函數(shù)重載。類的成員函數(shù)與非成員函數(shù)同名,不是函數(shù)重載。
?
4、調(diào)用成員函數(shù)
(1)必須通過對(duì)象去調(diào)用,要指定對(duì)象和成員名,否則無意義。
?????? 格式:對(duì)象名.成員
(2)類類型作為一個(gè)構(gòu)造類型,不但可以定義對(duì)象,而且可以定義對(duì)象指針或?qū)ο笠谩?/p>
(3)this指針
?????? this指針是C++實(shí)現(xiàn)封裝性的一種機(jī)制。程序運(yùn)行時(shí),系統(tǒng)自動(dòng)為每個(gè)對(duì)象提供一個(gè)this指針,該this指針接受當(dāng)前對(duì)象的地址,所有對(duì)成員的訪問都被隱含地加上前綴:this->。
如month=m;等價(jià)于this->month=m;
?????? 無論哪個(gè)對(duì)象調(diào)用,成員函數(shù)從獲得的參數(shù)(顯式的和隱含的)來判斷都清楚,所以成員函數(shù)中訪問成員無需對(duì)象名作前綴。
?
總結(jié)
以上是生活随笔為你收集整理的C++ —— C++类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从0开始学习WBE前端
- 下一篇: PUN☀️一、基础配置、搭建大厅程序