建構函式基本概念

2021-08-17 15:31:33 字數 923 閱讀 8327

建構函式:

作用:在物件被建立時使用特定的值構造物件,將物件初始化為乙個特定的初始狀態

要求:函式名=型別名,不能定義返回值型別,也不能有return語句

使用:clock c(實參1, 實參2,……);

如果沒有定義建構函式,編譯器將在需要時自動生成乙個預設建構函式,這個預設構造函式引數列表為空,且初始值可能不確定

如果定義了建構函式,編譯器就不再隱含生成預設建構函式,如果此時依然希望編譯器隱含生成預設建構函式,可以使用「clock() = default;」

非法例子1:

class clock

int main(void)

錯誤原因:雖然乙個物件可以定義多個建構函式,但是上面這兩個建構函式都可以只接受乙個實參,這樣當你「clock k(5)」時系統就不知道使用哪個建構函式而出錯

非法例子2:

class clock

int main(void)

錯誤原因:如果定義了建構函式,編譯器就不再隱含生成預設建構函式,所以你在定義新的clock物件時,就必須傳遞乙個引數以使用上面你自己定義的的建構函式,例如clock t(5);

合法例子:(**中有注釋)

#includeusing namespace std;

class clock

;clock::clock(): h(1),m(0),s(0) //冒號後面是初始化列表,相當於就是在函式裡面初始化

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

void clock::set(int h, int m, int s)

void clock::show()

int main(void)

建構函式 析構函式的基本概念

建構函式主要用於建立物件並將物件的資料初始化。析構函式是物件即將被銷毀的時候做一些清理工作。classa 建構函式 def init self,age,name self.age age self.name name 析構函式 def del self pass建構函式的特點 第乙個引數是self,...

JavaScript函式基本概念

js的函式和python差不多,def 換成function arguments js函式在使用時傳入的引數可以不與定義的引數個數相等 可多可少 arguments用於獲取所有傳入的引數,用法類似與array rest 用法function f a,b,rest 獲取除了自定義的a,b引數外的其餘引...

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...