為什么c++要引入class關(guān)鍵字
?主要是兼容,c++肯定得讓struct默認(rèn)public,畢竟c的就是public。但是對(duì)于類封裝來(lái)說(shuō)又需要默認(rèn)private比較好。
解決這個(gè)問(wèn)題方案可以有很多種,舉幾個(gè)例子。
方案1,提供private struct,再允許內(nèi)部聲明public,但是這樣可能需要添加一個(gè)新的類型限定符,因?yàn)樵幊炭赡苄枰褂盟?,類似const volatile這種限定符,這種為了小特性大大增加語(yǔ)言復(fù)雜度的設(shè)計(jì)難以接受。
方案2,提供成員字段和函數(shù)的限定符,例如跟java那樣,但是這跟c又不一致了,因?yàn)閏不加等于public,那c++也只需要private關(guān)鍵字了,有點(diǎn)反直覺(jué),同樣也需要給成員添加新的限定符。
方案3,就是現(xiàn)在的做法,加個(gè)新關(guān)鍵字,新關(guān)鍵字直接不兼容struct,默認(rèn)private,成員采用塊的方式聲明訪問(wèn)控制限定。這樣可能是相對(duì)來(lái)說(shuō)比較好的做法,在兼顧兼容和使用方便的角度來(lái)看。


在C++之前,C語(yǔ)言并沒(méi)有面向?qū)ο蟮奶匦?,不能直接支持類、?duì)象和封裝等概念。C++為了實(shí)現(xiàn)面向?qū)ο蟮木幊?,引入了class關(guān)鍵字,即“類”。
class關(guān)鍵字允許程序員定義結(jié)構(gòu)體或類,其中包括
(屬性)和 (方法),并且這些成員可以是public、private或protected。class可以看作是一種允許用戶自定義數(shù)據(jù)類型的模版,這種數(shù)據(jù)類型包括了數(shù)據(jù)成員和成員函數(shù)。通過(guò)類,可以實(shí)現(xiàn)數(shù)據(jù)的封裝和抽象,從而使得程序具有更好的 、可維護(hù)性和 。同時(shí),C++還提供了繼承、多態(tài)等多種特性,使得類之間可以進(jìn)行繼承、
、組合等操作,更加方便地實(shí)現(xiàn)復(fù)雜的程序功能。引入class關(guān)鍵字,使得C++具備了面向?qū)ο缶幊痰哪芰?,使得程序的結(jié)構(gòu)更加清晰、代碼更加精簡(jiǎn)、功能更加強(qiáng)大。


WRITE-BUG研發(fā)團(tuán)隊(duì)衷心希望【W(wǎng)RITE-BUG數(shù)字空間】可以給每位同學(xué)一個(gè)屬于自己的秘密空間,同時(shí)祝愿大家在“公開圈子”世界里,遇見(jiàn)志同道合的伙伴們,因?yàn)槲覀兣c大家一樣,都曾孤獨(dú)前行著。
