C 不可錯過的類和物件最基本概念

2021-10-09 23:30:43 字數 2799 閱讀 7854

c語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函式逐步呼叫解決問題

c++是基於物件導向的,關注的是物件,將一件事拆分成不同的物件,靠物件之間的互動完成(基於物件導向:既有物件導向,也有面向過程,因為c++要相容c語言)

物件導向和面向過程不是一門程式語言,而是一種解決問題的思路,c++中實現物件導向的程式設計思想,class定義的類是很關鍵的一步。

在c語言中,結構體只能定義變數,不能定義函式

在c++中,結構體內不僅可以定義變數,也可以定義函式

class關鍵字

舉例:在c語言中定義結構體

在c++中定義結構體:

類就是對物件(實體)進行描述的,但類不是物件(實體),類也可以看成是新定義了一種資料型別

實體有哪些屬性:類的成員變數

實體有哪些功能:類的成員函式

類的兩種定義方式:

(1)宣告和定義全部放在類體中(注意:成員函式如果在類中定義,編譯器可能會將其當成內聯函式處理)

class person

public:

char* _name;

char* _gender;

int _age;

};

(2)宣告放在.**件中,類的定義放在.cpp檔案中(成員函式如果放在類外來進行定義,成員函式名之前必須要加類名::,表明該函式是哪個類的成員函式)

在標頭檔案中:

在原始檔中:

類的作用域:類定義了乙個新的作用域,類的所有成員都在類的作用域中,在類外定義成員,需要使用::作用域解析符指明成員屬於哪個類域

(1)訪問限定符(限定類中哪些成員可以在類外來進行使用)

【訪問限定符說明】

注意:訪問限定符只在編譯時有用,當資料對映到記憶體後,沒有任何訪問限定符上的區別

問:c++中struct和class的區別是什麼?

答:c++需要相容c語言,所以c++中struct可以當成結構體去使用,c++中的struct也可以用來定義類,和class是一樣的。區別是:struct的成員預設訪問許可權是public,class的成員預設訪問許可權是private

(2)封裝(將資料和運算元據的方法進行有機結合,隱藏物件的屬性和實現細節,僅對外公開介面來和物件進行互動)

問:物件導向的三大特性?

答:封裝、繼承、多型

在類和物件階段,只研究類的封裝特性,封裝本質上是一種管理用類型別建立物件的過程稱為類的例項化

類:主要是對實體(物件)來進行描述的,描述實體都有哪些屬性(成員變數),實體中都有哪些方法(成員函式),類也是新定義的一種型別,類是比較抽象的乙個概念,是從許多物件中提取出來的一些公共的資訊,將資料和方法包裝起來,更好地描述實體。

物件:實實在在存在的,是用類產生的乙個實體,物件中是可以放資料的

舉例:類相當於一張圖紙,物件相當於一座房子

物件模型:物件在記憶體中的布局方式

(1)類物件的儲存方式猜測

所以,計算機的儲存方式到底是哪種?

實際的儲存情況:物件中只儲存了成員變數,成員函式單獨進行存放,當程式執行起來後,成員函式儲存在**段,但是也要注意記憶體對齊

結論:乙個類的大小,實際就是該類中「成員變數」之和

問:空類的大小是多少?為什麼?

答:在主流編譯器中,空類大小佔1位元組,將空類大小設定成1的目的就是為了區分空類定義出來的不同物件

舉例:

class a1

private:

int a;

};class a2

};class a3{};

int main()

**執行結果為:

基本概念 類和物件

class object 類物件 類是對一群有共同特徵的事物或事件的 集合。而類物件就是類的 例項化。類中的成員物件。乙個類的所有物件對應同乙個類物件。如現實世界中的動物是一種類,植物也是一種類,可以理解人就是 動物類的一種物件,草是植物類的一種物件。類物件的生成過程,包括物件的宣告 例項化和初始化...

類和物件(1) 基本概念

類用於指定物件的形式,它包含了資料表示法和用於處理資料的方法。類中的資料和方法稱為類的成員。函式在乙個類中被稱為類的成員。類定義定義乙個類,本質上是定義乙個資料型別的藍圖。這實際上並沒有定義任何資料,但它定義了類的名稱意味著什麼,也就是說,它定義了類的物件包括了什麼,以及可以在這個物件上執行哪些操作...

19 C 類和物件的基本概念

我們編寫程式的目的是為了解決現實中的問題,而這些問題的構成都是由各種事物組成,我們在計算機中要解決這種問題,首先要做就是要將這個問題的參與者 事和物抽象到電腦程式中,也就是用程式語言表示現實的事物。那麼現在問題是如何用程式語言來表示現實事物?現實世界的事物所具有的共性就是每個事物都具有自身的屬性,一...