類和物件2

2021-09-26 15:38:21 字數 1932 閱讀 6762

一,建構函式

特性:函式名與類名相同。

無返回值。

物件例項化時編譯器自動呼叫對應的建構函式。

建構函式可以過載。

class date

date()

void init(int year, int month, int day) // void init(date* this, int year, int month, int day)

void print() // void print(date* this)

private:

int _year;

int _month;

int _day;

};int main()

5、如果類中沒有顯式定義建構函式,則c++編譯器會自動生成乙個無參的預設建構函式,一旦使用者顯式定義編譯器將不再生成。

class time

private:

int _hour;

int _minute;

int _second;

};class date

*/ void print() // void print(date* this)

private:

int _year;

int _month;

int _day;

time _t;

};int main()

6、無參的建構函式和全預設的建構函式都稱為預設建構函式,並且預設建構函式只能有乙個。注意:無參建構函式、全預設建構函式、我們沒寫編譯器預設生成的建構函式,都可以認為是預設建構函式。

預設建構函式

class date

*/ date(int year, int month, int day)

// 更好的方式->全預設

/*date(int year = 0, int month = 1, int day = 1)

*/ void print() // void print(date* this)

private:

int _year;

int _month;

int _day;

};int main()

二、析構函式

特性:析構函式名是在類名前加上字元 ~。

無引數無返回值。 

乙個類有且只有乙個析構函式。若未顯式定義,系統會自動生成預設的析構函式。

物件生命週期結束時,c++編譯系統系統自動呼叫析構函式。

class date

void print() // void print(date* this)

~date()

private:

int _year;

int _month;

int _day;

};class stack

~stack()

private:

int* _a;

int _size;

int _capacity;

};int main()

淺拷貝:直接複製記憶體

深拷貝:當成員中有指向堆的指標,就必須重新給該指標分配空間,然後將目標物件指標所指空間的內容拷貝到新分配的空間。(如果不這樣做,會導致兩個指標指向同一片空間,從而在析構中多次釋放)。

三、const成員函式

const物件可以呼叫其他的const函式;

非const物件可以呼叫非const成員函式和const成員函式;

const成員函式內可以呼叫其他的const成員函式;

非const成員函式內可以呼叫其他的const成員函式和非const成員函式。

2 類和物件

類即類別 種類,是物件導向設計最重要的概念,從一小節我們得知物件是特徵與技能的結合體,而類則是一系列物件相似的特徵與技能的結合體。那麼問題來了,先有的乙個個具體存在的物件 比如乙個具體存在的人 還是先有的人類這個概念,這個問題需要分兩種情況去看 世界上肯定是先出現各種各樣的實際存在的物體,然後隨著人...

2 類和物件

類是一種資料型別,設計時系統不為類分配儲存空間,所以不能去訪問類裡面的資料成員,也不能去初始化類裡 面的資料成員。只能訪問這個類所產生的物件的資料成員 前提是共有 eg 類相當於圖紙是描述和規劃的藍圖,而物件就是圖紙例項化後的實體物件 樓房 計算機不給類分配記憶體,只給物件分配記憶體。建立物件有兩種...

類和物件2

物件的定義 物件等同於資料加操作 物件 資料 操作 屬性 filed 方法 method 類 類是產生物件的模板 圖紙 學會定義類要解決下面兩個問題 1.如何使用定義好的類,例項化出物件 2.學會使用物件 通過引用 1.操作物件中的屬性 2.呼叫物件關聯的方法 一.如何定義類 public clas...