C/C++編程筆記:關(guān)于C++類(lèi)和對(duì)象,這些知識(shí)點(diǎn)你知道嗎?


類(lèi):?C ++中的類(lèi)是構(gòu)建塊,可導(dǎo)致面向?qū)ο蟮木幊?。它是用?hù)定義的數(shù)據(jù)類(lèi)型,它擁有自己的數(shù)據(jù)成員和成員函數(shù),可以通過(guò)創(chuàng)建該類(lèi)的實(shí)例來(lái)訪問(wèn)和使用它們。
C ++類(lèi)就像對(duì)象的藍(lán)圖。
例如:考慮汽車(chē)類(lèi)別。可能有許多名稱(chēng)和品牌不同的汽車(chē),但它們都會(huì)共享一些共同的屬性,例如所有汽車(chē)都有4個(gè)車(chē)輪,速度限制,里程范圍等。因此,這里的汽車(chē)是類(lèi)別和車(chē)輪,速度限制,里程是他們的屬性。
類(lèi)是用戶(hù)定義的數(shù)據(jù)類(lèi)型,具有數(shù)據(jù)成員和成員函數(shù)。
數(shù)據(jù)成員是數(shù)據(jù)變量,成員函數(shù)是用于操縱這些變量的函數(shù),這些數(shù)據(jù)成員和成員函數(shù)共同定義了類(lèi)中對(duì)象的屬性和行為。
在上面的Car類(lèi)示例中,數(shù)據(jù)成員將是速度限制,里程等,并且成員功能可以應(yīng)用制動(dòng),增加速度等。
一個(gè)對(duì)象是一個(gè)類(lèi)的實(shí)例。當(dāng)定義了一個(gè)類(lèi)時(shí),不分配內(nèi)存,而是在實(shí)例化(即創(chuàng)建對(duì)象)時(shí)分配內(nèi)存。
定義類(lèi)和聲明對(duì)象
在C ++中,使用關(guān)鍵字class及其后的類(lèi)的名稱(chēng)定義了一個(gè)類(lèi)。類(lèi)的主體在大括號(hào)內(nèi)定義,并在末尾以分號(hào)結(jié)束。

聲明對(duì)象:定義類(lèi)時(shí),僅定義該對(duì)象的規(guī)范;否則,將不執(zhí)行任何操作。沒(méi)有分配內(nèi)存或存儲(chǔ)空間。要使用該類(lèi)中定義的數(shù)據(jù)和訪問(wèn)功能,您需要?jiǎng)?chuàng)建對(duì)象。
句法:
ClassName ObjectName;
訪問(wèn)數(shù)據(jù)成員和成員函數(shù):可以使用dot('。')運(yùn)算符與對(duì)象一起訪問(wèn)類(lèi)的數(shù)據(jù)成員和成員函數(shù)。例如,如果對(duì)象的名稱(chēng)是obj,并且您想使用名稱(chēng)printName()訪問(wèn)成員函數(shù),則必須編寫(xiě)obj.printName()。
訪問(wèn)數(shù)據(jù)成員
公共數(shù)據(jù)成員的訪問(wèn)方式也與給定的方式相同,但是對(duì)象不允許直接訪問(wèn)私有數(shù)據(jù)成員。訪問(wèn)數(shù)據(jù)成員僅取決于該數(shù)據(jù)成員的訪問(wèn)控制。
此訪問(wèn)控制由C ++中的Access修飾符提供。有三種訪問(wèn)修飾符:public,private和protected。

輸出:
Geekname is:Abhi
類(lèi)中的成員函數(shù)
有兩種定義成員函數(shù)的方法:
(1)內(nèi)部類(lèi)定義
(2)課外定義
要在類(lèi)定義之外定義成員函數(shù),我們必須使用范圍解析:::以及類(lèi)名和函數(shù)名。

輸出:
Geekname is:xyz
Geek id is::15
請(qǐng)注意,默認(rèn)情況下,在類(lèi)定義中定義的所有成員函數(shù)都是inline,但是您也可以通過(guò)將關(guān)鍵字inline與其內(nèi)聯(lián)來(lái)使任何非類(lèi)函數(shù)內(nèi)聯(lián)。內(nèi)聯(lián)函數(shù)是實(shí)際函數(shù),在編譯過(guò)程中會(huì)像預(yù)處理器宏一樣復(fù)制到各處,因此可以減少函數(shù)調(diào)用的開(kāi)銷(xiāo)。
構(gòu)造函數(shù)
構(gòu)造函數(shù)是特殊的類(lèi)成員,每次實(shí)例化該類(lèi)的對(duì)象時(shí),編譯器都會(huì)調(diào)用它們。構(gòu)造函數(shù)與類(lèi)具有相同的名稱(chēng),并且可以在類(lèi)定義的內(nèi)部或外部定義。
共有3種類(lèi)型的構(gòu)造函數(shù):
(1)默認(rèn)構(gòu)造函數(shù)
(2)參數(shù)化的構(gòu)造函數(shù)
(3)復(fù)制構(gòu)造函數(shù)

一個(gè)拷貝構(gòu)造函數(shù)創(chuàng)建一個(gè)新的對(duì)象,這是現(xiàn)有對(duì)象的精確副本。編譯器為所有類(lèi)提供默認(rèn)的Copy構(gòu)造函數(shù)。
句法:
類(lèi)名(類(lèi)名&){}
析構(gòu)函數(shù)
析構(gòu)函數(shù)是對(duì)象的作用域結(jié)束時(shí)由編譯器調(diào)用的另一個(gè)特殊成員函數(shù)。

每天學(xué)點(diǎn)小知識(shí),希望對(duì)你有幫助~
另外如果你想更好的提升你的編程能力,學(xué)好C語(yǔ)言C++編程!彎道超車(chē),快人一步!筆者這里或許可以幫到你~
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
