類是一種使用者自定義的型別,宣告乙個類物件時,編譯程式要為物件分配儲存空間,進行必要的初始化。在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 類建構函式
類是一種使用者自定義的型別,宣告乙個類物件時,編譯程式要為物件分配儲存空間,進行必要的初始化。在c 中,這項工作是由建構函式來完成的。大部分物件在使用之前沒有正確的初始化是c 出錯的主要原因。引入類的建構函式是正確的初始化類的物件,使該物件具有區別於其他物件的特徵。一般什麼時候觸發並呼叫類的建構函式...
C 類 建構函式
初始化建構函式 複製建構函式 型別轉換建構函式 作用 初始化 建構函式名與類名相同 放在public裡 class test 用來進行同類物件直接的複製 基本形式 class test 第一種 test const test 第二種 以下幾種情況複製建構函式會被呼叫 test a b用乙個物件去初始...