C 小白 物件導向3

2021-09-25 01:16:14 字數 2372 閱讀 5735

建構函式是類的一種特殊的函式:

(1)函式名與類名相同

(2)沒有返回值

(3)可以有形參也可以沒有

(4)可以時內聯函式

(5)可以過載

(6)可以帶預設引數

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

建構函式一般不顯示呼叫,在建立乙個物件時,建構函式被自動呼叫。(用編譯器完成) 

若程式中未定義建構函式,編譯器將自動生成乙個預設建構函式,模擬人生建構函式的引數列表是空的。

如果程式中已經定義建構函式,預設情況下編譯器就不再隱含生成預設構造器了,如果此時依然希望編譯器生成預設構造器,可以使用「=default」 

例如:class object //自定義構造器

};

#include using namespace std;

class object

object(int a)

};int main()

例如:

#include using namespace std;

class object

object(int a) :i(a)

void showinfo()

private:

int i=1;

};int main()

#include using namespace std;

class object

object(int a);

void showinfo()

private:

int i=1;

};object::object(int a) :i(a)

int main()

使用類的其他建構函式來執行初始化過程

例如:class clock

clock():clock(0,0){} //委託建構函式:使用類的其他建構函式來執行初始化過程

private:

int i, j;

};複製建構函式是乙個特殊的建構函式,其形參為本類的物件引用  

作用是用乙個已經存在的物件來構造另外乙個新物件(兩個物件的型別相同)

形式:

class 類名

類名::類(const 類名  &物件名)  //複製建構函式的實現

複製建構函式不顯示呼叫,而是由編譯器隱式地去呼叫

以下三種情況:

(1)定義物件

object  a;

object  b(a);  //相當於 object b=a;

(2)動態建立物件

object  a;

object*  p=new object(a);

(3)函式的傳值呼叫

void  test(object  obj)

物件被銷毀的時候自動呼叫

(1)名稱固定:類名前面加上波浪線「~」   形式:~類名  例如:~object()

(2)沒有返回值

(3)不能帶引數

析構函式只能有乙個,不允許過載  。析構函式不顯示地呼叫而是在物件被銷毀時,被編譯器自動地呼叫。如果程式中未定義析構函式,編譯器會自動地生成乙個析構函式

子類物件構建時,先呼叫父類建構函式,再呼叫子類建構函式

子類物件析構時,先呼叫子類析構函式,再呼叫父類建構函式

即構造和析構是一對相反的過程 

#include using namespace std;

class parent

parent(int a)

~parent()

};class child : public parent

child(int a)

~child()

};int main()

//結束,物件的析構函式被呼叫

}

輸出結果:

當父類有多個建構函式時可以顯式地呼叫其中乙個建構函式(使用初始化列表來呼叫),如果沒有顯示呼叫則呼叫預設的父類建構函式 

下面例子中表示如何顯式地呼叫父類的建構函式:

class parent

parent(int a)

~parent()

};class child : public parent

child(int a)

~child()

};

C 小白 物件導向1

在c 中,類 class 是對c中的結構體struct的增強,也是用於自定義型別的。includeusing namespace std class object int main 訪問修飾符 public 公開的,可以被外部訪問 private 私有的,不可以被外部與訪問 protected 一般...

C 小白 物件導向2

include using namespace std class object int main 輸出結果為 include using namespace std int x 1 定義全域性變數x class object int main 3.當全域性函式與成員函式相同時,使用成員函式 inc...

python小白 物件導向 成員介紹

方法property等 字段分為兩種 普通字段和靜態字段 普通字段,又叫例項屬性,在物件導向中屬於物件,在物件被建立時產生。也就是說,普通字段只能通過物件來訪問,不可通過類訪問 如下 class ziduan 普通字段 例項屬性 def init self 通過物件建立普通字段 self.commo...