C 類建構函式

2021-06-18 10:37:57 字數 1100 閱讀 3233

類是一種使用者自定義的型別,宣告乙個類物件時,編譯程式要為物件分配儲存空間,進行必要的初始化。在c++中,這項工作是由建構函式來完成的。

大部分物件在使用之前沒有正確的初始化是c++出錯的主要原因。

引入類的建構函式是正確的初始化類的物件,使該物件具有區別於其他物件的特徵。

一般什麼時候觸發並呼叫類的建構函式呢?

答案是:當我們用類來定義乙個類變數的時候,如下:

(1)當我們用類去建立乙個物件時,它首先呼叫類的建構函式

class demo; 宣告並定義好完整的類

(2)呼叫類的無引數的建構函式

demo d;

(3)按引數個數不同,呼叫類中不同的建構函式

demo d1(引數1,..)

建構函式名和類名完全一樣,可以根據不同的引數來實現過載不同的建構函式;

建構函式是沒有任何返回值的,它預設的是public,inline函式;

建構函式可以過載,可以是無引數,有引數,有預設引數)如下:

宣告三個建構函式

**如下

class item;

如下面的類

class demo();

建構函式初始化成員有兩種方法:

a.使用建構函式的初始化列表進行初始化

格式:funname(引數列表):(初始化列表){}

初始化列表: 成員名1(形參名1),成員名2(形參名2),成員名n(形參名n)

**:demo(int a=0,int b=0,std::string s=\"\"):x(a),y(b),name(s){}

b.使用建構函式的函式體進行初始化

格式:funname(引數列表)

它和傳統的c函式差不多

**:demo(int a=0,int b=0,std::string s=\"\")

無引數的建構函式:主要用初始化列表來初始化成員變數

有引數的建構函式:預設形參+初始化列表的建構函式

由於忙著c++等級考試,還沒有仔細的考慮這個函式與以前所學函式的區別,和為什麼c++要設建構函式,只是大概看了下基礎,待考完試可以認真研究一下這門語言。

c 類 建構函式 複製建構函式

複製建構函式是一種特殊的建構函式,它的作用是用乙個已經存在的物件去初始化另乙個物件。一般情況下不需要自行定義複製建構函式,系統預設提供乙個逐個複製成員值的複製建構函式。何時要使用呢?1.將新物件初始化為乙個同類物件 2.按值將物件傳遞給函式 3.函式按值返回物件 4.編譯器生成臨時物件 簡單的樣例如...

C 類 建構函式

初始化建構函式 複製建構函式 型別轉換建構函式 作用 初始化 建構函式名與類名相同 放在public裡 class test 用來進行同類物件直接的複製 基本形式 class test 第一種 test const test 第二種 以下幾種情況複製建構函式會被呼叫 test a b用乙個物件去初始...

C 類建構函式

類是一種使用者自定義的型別,宣告乙個類物件時,編譯程式要為物件分配儲存空間,進行必要的初始化。在c 中,這項工作是由建構函式來完成的。大部分物件在使用之前沒有正確的初始化是c 出錯的主要原因。引入類的建構函式是正確的初始化類的物件,使該物件具有區別於其他物件的特徵。一般什麼時候觸發並呼叫類的建構函式...