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 使用引用...