C 第三章 建構函式和析構函式

2021-10-04 21:24:03 字數 1334 閱讀 5809

3.1 建構函式

1.目的:對資料成員初賦值;建構函式是乙個公有成員函式;建構函式是自動完成的。

建構函式是由使用者定義的特殊的成員函式。

2.建構函式的格式:

1.)類名(參數列);//time(int h,int w,int l)

2.)建構函式必須與類名相同;建構函式沒有返回值;功能是對物件初始化;建構函式是系統自動呼叫;建構函式允許過載。

3.)預設建構函式:如果類沒有定義任何引數,編譯器自動為類生成不帶任何引數的預設構造引數。

如:time() {};

注意無參,有參,有預設引數的建構函式。

3.1.1無引數的建構函式

無引數的建構函式中,每乙個物件都得到同一組初值。

3.1.2帶引數的建構函式

使用者想賦予物件不同初值的時候,需要採用帶引數的建構函式。

帶參的建構函式格式:

類名 (型別1 形參1,型別2 形參2,…);

物件定義格式:

類名 物件名(實參1,實參2,…);//帶參建構函式物件

類名 物件名;//預設建構函式物件,注意不帶()

1.) 在類內定義

class time

time(int h,int m,int s)//帶參建構函式

功能同上

time(int h,int m,int s):hour(h),minute(m),second(s){}

…private:

int hour,minute,second;

};2.) 在類外定義

class time()

;time::time()

time::time(int h,int m,int s)

功能同上

time::time(int h,int m,int s):hour(h),minute(m),second(s){}

3.)有預設引數的建構函式

應該在建構函式的宣告處指定預設引數值。

time (int h=10,int m=10,int s=10);

全部是預設引數的建構函式不能再過載。

3.2 析構函式

1.功能:析構函式與建構函式功能相反,是**建構函式中申請的空間。

2.說明格式:~類名();

1.)函式名和類名相同,在前面加"~"。

2.)析構函式沒有任何返回型別,不帶任何引數。

3.)如果沒有定義任何的析構函式,編譯器自動為類生成乙個預設析構函式。

如:~time(){}

4.)析構函式不能被過載,乙個類只能有乙個析構函式。

3.3 呼叫建構函式和析構函式的順序

在同一函式中,先構造的後析構,後構造的先析構。

第三章 函式

函式是模組劃分的基本單位,是對外處理的一種抽象 c和c 的子程式體現為函式 呼叫其他函式的被稱為主函式 被其他行數呼叫的稱為被調函式 函式的語法形式 型別說明符 函式名 含型別說明的形式參數列 語句序列 形式引數 形式參數列 簡稱形參 表的內容如下 type1 name1,type2 name2,t...

C 實踐 第三章 函式

問題描述 編寫具有如下原型的函式 bool f long x 其功能為 若整數 x 僅由偶數字 0 2 4 6 8 組成時 如 x 26480 函式返回 true,否則返回 false 如當 x 22034 時 並編制主函式對它進行呼叫。輸入形式 只能是乙個整數數字,中間不能有空格等其他字元 輸出形...

C 程式設計 第三章 函式

int r i r為i的引用1 定義引用的時候必須初始化,使其指向乙個存在的物件 2 一旦定義以後就與物件繫結,不允許修改 3 當用引用作為函式的引數時,其效果和用指標作為函式引數的效果相當,此時函式中對形參的各種操作實際上是對實參本身進行操作,而非簡單的將實參變數或物件的值拷貝給形參 4 使用引用...