建構函式分為四種:
無引數建構函式
有引數建構函式
拷貝建構函式
預設建構函式
#include
using
namespace std;
class
test
test
(int i)
test
(int i,
int j)
test
(const test& obj)
private
:int a;
int b;
};
void
main()
void
main()
拷貝建構函式,用乙個物件去初始化另外乙個物件。
注意:賦值和初始化是兩個完全不同的概念
第一種呼叫方法:
void
main()
第二種呼叫方法:
void
main()
第三種呼叫方法:
void
f(test p)
//當這個函式被呼叫時,由於要對形參初始化,則用實參對其初始化 此時會呼叫test類的拷貝建構函式
//當該函式執行完畢後,會自動析構p,呼叫析構函式
void
main()
第四種呼叫方法:
test g()
void
main()
1、預設無參建構函式
當類中沒有定義建構函式時,編譯器預設提供乙個無參建構函式,並且其函式體為空
2、預設拷貝函式
當類中沒有定義拷貝建構函式時,編譯器預設提供乙個預設拷貝建構函式,簡單的進行成員變數的值的賦值。這裡涉及到深拷貝和淺拷貝的知識,在此不再贅述。
當類中程式設計師自己定義了任何一種建構函式(有參建構函式和賦值建構函式),編譯器都不會再提供無參建構函式。
就是說,如果你只定義了有參建構函式,那就不能單純的只寫
test t1;
//這麼寫是會報錯的,找不到可用的建構函式,
//因為此時,編譯器沒有替你自動建立乙個預設得無參建構函式
C 建構函式 拷貝建構函式
建構函式 class base private int m var 建構函式無返回值型別,函式名和型別相同。拷貝建構函式傳遞引數為引用。1 class base2 7 拷貝建構函式 8 base base ref m var ref m var 9 11 private 12 intm var 13...
C 的建構函式
tags c 建構函式是用於建立物件的特殊成員函式,當建立物件時,系統自動呼叫建構函式建構函式的作用是 為物件分配空間 對資料成員賦初值 請求其他資源 沒有使用者定義的建構函式時,系統提供預設版本的建構函式 建構函式名與類名相同 類名 建構函式可以過載,建構函式可以有任意型別的引數,但沒有返回型別。...
C 的建構函式
1 定義 在基於物件的程式中,在定義乙個物件時,也需要作初始化的工作,即對資料成員賦初值。因為不能再類宣告中對資料成員初始化 類並不是乙個實體,而是乙個抽象型別,並不占用儲存空間,顯然無法容納資料 c 提供了建構函式來處理物件的初始化。建構函式是一種特殊的成員函式,與其他成員函式不同,不需要使用者來...