c++是基於物件導向的語言,並不是純物件導向的語言,因為它包含c的部分,c是面向過程的語言
一、物件導向
概念:物件導向程式設計(oop)是一種程式設計的泛型,同時也是一種程式開發的方法,它將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充套件性
二、類和物件的概念
類:類是現實世界在計算機中的反映,它將資料和對這些資料的操作封裝在一起(並沒有開空間)
物件:類的例項(占有實際的空間)
class student //類
private:
int _num;
char* _name;
int _age;
};int main()
1)類相當於蓋樓房的圖紙一樣,雖然定義了有哪些成員,但並沒有實際的空間
2)類可以例項化出多個物件,例項化出的物件占有實際空間(用來儲存成員變數)
三、類的三大特性:
1.封裝 2.繼承 3.多型
封裝:函式的封裝是一種形式,隱藏物件的屬性和實現細節(函式內部),僅僅對外提高函式的介面和物件進行互動。
類的訪問限定符可以協助其完成封裝
四、類的三個訪問限定符
1.public:公有的,類的成員可以從類外直接訪問
2.private/protected:類的成員不能從類外直接訪問
3.類的每個訪問限定符可以多次在類中使用,作用域為從該限定符開始到下乙個限定符之前/類結束
4.類中如果沒有定義限定符,則預設為私有的(private)
5.類的訪問限定符體現了類的封裝性
因為_name是私有的,所以在類外不能使用,而_age,eat()是公有的,所以在類外可以直接使用
五、類的定義
1.定義乙個簡單的類
2.類的物件可以直接通過 . 來訪問類的公有成員,類的物件指標可以通過->來訪問類的公有成員
class person
public:
int _age;
char* _name;
};int main()
;void person::display()//類外定義
六、類的大小
類的成員函式放在公共**區,所有該類的物件共享這些成員函式,每個物件的大小為類內成員變數的大小之和,遵循記憶體對齊原則
1.為什麼要記憶體對齊?
答:為了提高程式的效能,方便cpu訪問記憶體,處理器並不是乙個位元組乙個位元組來訪問記憶體,一般是4個位元組或8個位元組
2.空類佔多少個位元組?為什麼?
答:空類佔1個位元組,佔位用,告訴系統我這裡定義了乙個類,雖然它是空的
C 類和物件概念及定義
物件導向物件導向是一種程式設計范型,同時也是程式開發的一種方法。物件是指類的例項,將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性 靈活性和擴充套件性。需要明確的是 c語言是面向過程語言,而c 不是純粹的物件導向語言,而是基於物件導向的語言,因為c 包含c語言的部分。物件導向的三大...
C (三)類和物件概念及定義
概念 是一種程式設計泛型,同時也是一種程式開發的方法。物件指的是類的例項,將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性,靈活性,和擴充套件性。c 不是純物件導向語言,而是基於物件導向語言,因為包含c語言 1 public成員可從類外部直接訪問,private protected...
物件導向(一) 類
class class nameobject name 乙個或者幾個物件的標識 class crectanglerect 是crectangle型別的物件的名稱 crectangle 和 rect的關係就像 int 和變數a的物件一樣 int 型別名 a 物件名,變數 如果物件需要呼叫類裡面的函式,...