leetcode 劍指offer 9 用兩個棧實現佇列
阿新 • • 發佈:2020-12-27
C++類和物件
- 類
類是面向物件程式設計OOP實現訊息封裝的基礎。 類是現實世界在計算機中的反映,它將資料和對這些資料的操作封裝在一起, 即具有相同結構,操作,使用約束規則在一起的物件集合在一起,就成為類,類是對物件的抽象。而物件是對類的具體體現。 類的實質是一種引用資料型別,只是這個資料型別比較複雜,類是一個抽象的概念,不能直接操作。只有例項化為物件,才能被操作。這就好比車,車是一個抽象的概念(你難道能開一個邏輯概念的車?),但是紅旗轎車跟長安轎車是它的例項化的物件,是可以直接進行操作的
-
類的結構
- 類名
- 資料元素
- 成員函式
//以下是典型的類的結構 class Car { //類名 public : //許可權:公有 Car() { } //成員函式 void set(float price, string __name); private ://許可權:私有 float price;//資料元素 string __name; };
-
類的特性
-
封裝性
將資料和操作封裝為一個有機的整體,由於類中私有成員都是隱藏的,只向外部提供有限的介面,所以能夠保證內部的高內聚性和與外部的低耦合性。用者不必瞭解具體的實現細節,而只是要通過外部介面,以特定的訪問許可權來使用類的成員,能夠增強安全性和簡化程式設計。
-
繼承性
繼承性更符合認知規律,使程式更易於理解,同時節省不必要的重複程式碼。
-
多型性
同一操作作用於不同物件,可以有不同的解釋,產生不同的執行結果。在執行時,可以通過指向父類(基類)的指標,來呼叫實現子類(派生類)中的方法。
-
- 物件
物件可以是一個變數,可以是一個數據結構,或者一個函式。 在電腦科學中,物件
(object),是一個儲存器地址,其中擁有值,這個地址可能有識別符號指向此處。 在上文中的紅旗轎車,長安轎車就可以算是物件。簡言之,物件是類的例項,真正的佔有記憶體空間的,實實在在的東西。物件是根據類來建立的。宣告類的物件,就跟宣告基本型別的變數一樣
//基於上面程式碼的物件
void Car::set(float price, string __name) {
price = 123456.789;
__name = "HongQi";
}
//與基本型別宣告變數類比
Car car;//宣告類的物件
int i; //基本型別的宣告
- 總結
類和物件,簡單來說就是邏輯抽象與物理實際的關係,一個是抽象事物,是邏輯上的集合,不能進行操作。一個是物理事物,具有實實在在的記憶體空間,可以進行操作。以下圖片雖然有失偏頗,但是理解類與物件還是可以的。