1、C++語(yǔ)言是基于面向?qū)ο蟮?,所以尤其四大特性?/p>
成都創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比中山網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式中山網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋中山地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴(lài)。
抽象、封裝、繼承、多態(tài)。、
抽象:對(duì)客觀世界,現(xiàn)實(shí)實(shí)體的一類(lèi)定義,找到共性;
封裝:將數(shù)據(jù)及對(duì)數(shù)據(jù)上的操作捆綁起來(lái);
繼承:子子孫孫無(wú)窮匱也;
多態(tài):主要體現(xiàn)在繼承,同一事物的不同表現(xiàn)形式。
2、C++中的類(lèi):
與C語(yǔ)言中的結(jié)構(gòu)體類(lèi)似:
struct STU{ char name[15]; char id[9]; double score; };
以上就可以體現(xiàn)封裝,將不同的數(shù)據(jù)類(lèi)型封裝起來(lái),只是沒(méi)有方法而已;
新的數(shù)據(jù)類(lèi)型為:struct STU a(結(jié)構(gòu)體變量)。
通過(guò)類(lèi)比,可以知道,在C++中通過(guò)class定義新的數(shù)據(jù)類(lèi)型,
class Test{ public: void setData(int x){ data; } private: int data; };
通過(guò)類(lèi)將其封裝起來(lái),新的數(shù)據(jù)類(lèi)型為T(mén)est a(對(duì)象)。
只不過(guò)在C語(yǔ)言中叫做結(jié)構(gòu)體,在C++中叫就做類(lèi),是一種對(duì)事物共性的抽象,
比C多了對(duì)數(shù)據(jù)上的操作。
3、對(duì)象:
在C中將結(jié)構(gòu)體定義的叫做,結(jié)構(gòu)體變量,在C++中將類(lèi)定義的叫做,對(duì)象。
創(chuàng)建對(duì)象兩種方式:
靜態(tài)創(chuàng)建:Test a; 創(chuàng)建后將對(duì)象壓棧;
動(dòng)態(tài)創(chuàng)建:Test *a = new Test; 其申請(qǐng)的空間在堆上,必須通過(guò)delete釋放。
4、訪問(wèn)限定符:
public:公有 protected: 保護(hù) private:私有;
C++中,通過(guò)對(duì)象只能訪問(wèn)一個(gè)類(lèi)的public, 對(duì)protected和private修飾的通過(guò)對(duì)象不能調(diào)用。
5、深入理解類(lèi)與對(duì)象:
當(dāng)我們定義一個(gè)類(lèi)的時(shí)候,相當(dāng)于規(guī)劃了一幅藍(lán)圖,沒(méi)有實(shí)例化時(shí),是沒(méi)有空間的,通過(guò)類(lèi)名.data是錯(cuò)誤的。
實(shí)例化:Test t1(); 錯(cuò) 這個(gè)不會(huì)實(shí)例化對(duì)象t1,因?yàn)檫@是函數(shù)聲明,t1是函數(shù)名稱(chēng),無(wú)參,返回值為T(mén)est類(lèi)型;
Test t2; 對(duì) 無(wú)參的初始化
Test t3(10); 對(duì) 含有一個(gè)參數(shù)的初始化
6、成員方法的實(shí)現(xiàn):
可以在類(lèi)內(nèi)直接定義;
也可以在類(lèi)內(nèi)聲明,類(lèi)外定義,加上作用域限定符,
int Test::getData(){ return data; }
加上::這個(gè)之后表明getData是Test的成員函數(shù)。
7、C++重載
C語(yǔ)言為什么不能重載呢? 從匯編層面可以知道,
void fun(); int fun(int a); double fun(double a, double b)
以上三個(gè)函數(shù)在C角度看匯編都是fun;名字都相同;
從C++的角度看,其匯編層面的函數(shù)名字為:fun funi fundd,是不一樣的,所以C++有函數(shù)的重載。
重載:函數(shù)名字相同,只與參數(shù)列表有關(guān),與返回值無(wú)關(guān)。
在C++中對(duì)重載函數(shù)使用extern "C"就可以理解了,
extern "C":將當(dāng)前函數(shù)(C++寫(xiě)的),當(dāng)做C編譯,而C編譯只看函數(shù)名稱(chēng),所以多個(gè)重載函數(shù)只能出現(xiàn)一次extern “C”!
要是出現(xiàn)兩個(gè),就會(huì)造成函數(shù)名相同,錯(cuò)誤。