第十章 物件和類

2021-08-09 15:38:50 字數 1832 閱讀 2654

物件導向是一種程式設計風格,用於任何一種語言。

過程性程式設計

考慮遵循的步驟,使用者希望有哪些功能,我如何提供,如何儲存資料。

物件導向程式設計

首先考慮使用者,確定乙個物件的屬性和操作這些屬性的方法。使用者介面有哪些。

相當於自己定製的乙個新的型別,這個型別的屬性和可以對這些屬性進行的操作

介面就是將人的意圖轉換為儲存在計算機中的具體資訊。

類宣告:資料成員和成員函式

類方法定義:描述如何實現類成員函式。

通常,將類定義放在標頭檔案中(標頭檔案中可以實現對函式的定義:內聯方法),將方法實現放在原始檔中。

資料放在私有部分

實現(函式)放在私有部分

類函式的定義和類宣告放在不同的檔案中。

結構的預設訪問型別是public

類的預設訪問型別是private

類函式的定義:類名::方法名

定義放在類宣告中的函式自動成為內聯函式。

類宣告之外定義的成員函式,在函式頭最前面使用:inline關鍵字使其成為內聯函式。

內聯函式的規則是每個使用他們的檔案中都對其進行定義。

建構函式:無返回值,函式名就是類名

引數名不能是資料成員名不提供建構函式時,預設的建構函式:stock::stock() {}

應提供預設的建構函式,而且建構函式應該提供初始值。

析構函式:無返回值,函式名就是~類名

使用建構函式:

stock food = stock("adf", 1, 2);//顯式呼叫

stock food("adf", 1, 2);//隱式呼叫

區域性變數放在棧中,先建立的變數後刪除

物件的初期化,初始化賦值的方式效率高

只要類方法不修改呼叫物件,就應將其宣告為const

自己提供的建構函式可以不提供引數,要提供就提供所有引數

建構函式可以過載,但析構函式只能有乙個。

如果建構函式使用了new,則必須提供使用delete的析構函式

類方法將呼叫他的物件的位址設定為this指標

如果要建立物件陣列必須要有預設建構函式:沒有任何引數的建構函式或有預設引數的建構函式。

const int months = 12; //失敗,宣告類只是描述變數的形式,沒有建立物件

enum ; //成功,定義的列舉量只是乙個符號常量,不屬於任何物件

static const int months = 12; //成功,不是儲存在物件中,被所有的物件共享

enum egg;

enum t_shirt; c98編譯出錯

enum class egg;

enum class t_shirt;

enum struct egg;

enum struct t_shirt;

egg::large

t_shirt::large

作用域內列舉不能隱式的進行型別轉換,可以顯式的進行型別轉換。

c11指定列舉的底層型別:enum class::short pizza;

引用既是別名,執行相同的記憶體空間

第十章 物件和類

c 中,類由兩部分組成 1 類宣告。包括成員變數和成員函式。一般方法在標頭檔案中。2 類方法定義。包括成員函式的定義。一般放在實現源 中。控制訪問中有有兩個關鍵字 private和public 直接上圖 類物件可以直接訪問public成員 而private成員只能通過public方法來訪問。priv...

第十章 物件和類

oop 過程性程式設計和物件導向程式設計 抽象和類 型別是什麼 c 中的類 介面 實現類成員函式class classname 類的建構函式和析構函式 建構函式 預設建構函式bozo int age 建構函式原型 bozo dribble bozo 44 初始化方式1 bozo roon 66 初始...

第十章 物件和類

通常,c 程式設計師將介面 類定義 放在標頭檔案中,並將實現 類方法的 放在源 檔案中。在oop中,通常把物件成員函式的呼叫稱作傳送訊息給物件。訪問控制關鍵字 private 類預設的訪問控制 public 結構體預設的訪問控制 protected。將實現細節放在一起,並將它們與抽象分開的思想稱為封...