類:就是類別,它是乙個抽象的概念,是一種事物的總稱
物件:經過例項化後就是物件
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進行種種操作...