c 類和物件(初級)

2021-09-22 12:55:06 字數 1009 閱讀 4241

:就是類別,它是乙個抽象的概念,是一種事物的總稱

物件:經過例項化後就是物件

struct和class的區別

類的關鍵字是class,class與c語言中我們學的struct結構體差不多。但是他們也是有區別的

1、struct結構體中只能定義變數型別,而class類中不僅可以定義變數(物件)也可以定義函式。

2、對於訪問許可權來說,在struct結構體中定義的變數是公有的,結構體外部的也可以訪問,但是class中定義的,如果沒有明確指定,預設是私有的,也就是說私有成員對類外是不可見的,更談不上訪問了。

類的3種訪問方式:(針對類外)

公有:public

私有:private:

保護:protect

類內部成員具有全域性屬性,後定義的也可以先使用,與定義的位置無關。

類的作用域

在類內的話就無所謂,具有全域性屬性,但是在類外的話需要使用 :: 作用域解析符

指明成員屬於哪個類域。

類大小的計算:(非常重要)

與成員函式無關(因為函式存放在**段,不佔空間),只與成員變數有關(是資料大小的總和),且遵循記憶體對齊,如果是個空類,系統為它分配乙個位元組大小的空間。

為什麼要進行記憶體對齊?

cpu在讀取資料時並不是乙個位元組乙個位元組的讀取,而是一塊一塊的拿資料,記憶體對齊會提高訪問效率。

this指標

this指標只存在於成員函式內部,存在於函式的第乙個形參。

this指標存在於棧上,優化後就在暫存器上。

型別:類型別* const

物件中不儲存this指標

this指標為什麼不能為空?

不能,空指標不能解引用,有時可以,前提是沒有做解引用(沒有訪問成員變數),

this指標始終指向當前呼叫它的那個物件的首位址。

C 初級 類與物件(1)

1.類的兩種定義方式 1 將宣告和定義全部放在類體中。注意 成員函式在類內定義,編譯器有可能將其當做內聯函式處理。class person 2 宣告放在.hpp檔案中,定義放在.cpp檔案中 hpp 宣告 public void display cpp 定義 void person display ...

C 類和物件 類和物件

c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...

C 物件和類

1,特殊的類 字串string include include using namespace std int main 類似於標準庫函式,我們不需要記住每種 類 的全部操作,只需要在使用過程中記住一些常用的操作就可以了。如果有需要的話,可以求助於相關書籍或網路 2,當我們對string進行種種操作...