物聯(lián)網(wǎng)/嵌入式工程師
重磅升級:新增硬件電路設(shè)計(jì)與實(shí)戰(zhàn),讓你軟硬通吃,同級PK無敵!行業(yè)風(fēng)口、政策傾斜,新晉熱門高薪不內(nèi)卷!0基礎(chǔ)一站式就業(yè)完整路徑,搶占先發(fā)優(yōu)勢!
我們上一小節(jié)中介紹了面向?qū)ο蟮乃枷?,這一小節(jié)開始,我們來具體看看在 C++ 中應(yīng)該如何實(shí)現(xiàn)面向?qū)ο蟆?/p>
類,是 C++ 實(shí)現(xiàn)面向?qū)ο笞罨A(chǔ)的部分。類其實(shí)和之前學(xué)過的結(jié)構(gòu)體十分相似,你可以認(rèn)為類是結(jié)構(gòu)體的升級版。之后的學(xué)習(xí)中你會(huì)更加理解類。現(xiàn)在,我們只簡單的來介紹一下類。
在 C++ 中,可以用下面的代碼申明一個(gè)員工類:
class Staff { };
可以像使用結(jié)構(gòu)體一樣使用這個(gè)類:
#include <stdio.h> class Staff { }; int main(int argc,char **argv) { Staff st; return 0; }
我們在此之前都是把代碼放到一個(gè)文件里,但是這樣在實(shí)際工程中肯定是不行的,我們不可能把所有的代碼都寫到一個(gè)文件夾里面。而在 C++ 中我們就常常把類定義到不同的文件里面,把每個(gè)類都獨(dú)立起來,這樣代碼的耦合性就會(huì)降低,方便維護(hù)。
在 C++ 中,我們可以把一個(gè)類寫到兩個(gè)文件里面,一個(gè)是后綴為 .h 或者 .hpp 的頭文件,一個(gè)是后綴為 .cpp 的實(shí)現(xiàn)文件。我們先在開發(fā)環(huán)境里新建一個(gè)類。輸入類名是 Staff。
可以看到 VS 為我們創(chuàng)建類兩個(gè)文件,Staff.h 和 Staff.cpp。Staff.h 文件為定義,Staff.cpp 為實(shí)現(xiàn)。
在分了文件之后,我們想要在 main 函數(shù)中引用這個(gè)類,就需要使用 #include “Staff.h” 將頭文件引入進(jìn)來。
在新建了一個(gè)類之后,我們就可以根據(jù)這個(gè)類產(chǎn)生對象了。根據(jù)類產(chǎn)生對象的過程叫做實(shí)例化。這個(gè)過程就像是公司招聘員工一樣,幸運(yùn)的是,我們作為程序的老板,并不需要和現(xiàn)實(shí)中一樣去張貼招聘啟示。在 C++ 中,“招聘“員工,只需要用以下的代碼就可以了。
#include "Staff.h" int main(int argc,char **argv) { // 我們就這樣實(shí)例化了三個(gè)員工 Staff st1; Staff st2; Staff st3; return 0; }
這樣分配,我們將這三個(gè)“員工”分配到了棧上,同樣的,可以把他們分配到堆內(nèi)存上面去。
要將對象分配到堆上,需要用到另外兩個(gè)關(guān)鍵字,new 和 delete。new 用來分配對象,delete 用來刪除對象。new 會(huì)返回一個(gè)指針,在使用完畢后,要通過 delete 把這個(gè)指針指向的地址釋放掉。
#include "Staff.h" int main(int argc,char **argv) { // 我們就這樣實(shí)例化了三個(gè)員工 Staff * st1 = new Staff(); Staff * st2 = new Staff(); Staff * st3 = new Staff(); // 記得釋放 delete st1; delete st2; delete st3; return 0; }
當(dāng)然,我們現(xiàn)在這個(gè)類還什么都不能干呢,接下來的課程中,我們將逐步介紹類的功能。
請驗(yàn)證,完成請求
由于請求次數(shù)過多,請先驗(yàn)證,完成再次請求
打開微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報(bào)