c++中為什麼要使用建構函式?
c++是從c演變過來的,c中存在的是結構體,例如:對點point
struct point
;但是對點的操作還要在外部使用函式來實現。
c++中包括了成員屬性和成員方法,但是由於類的封裝性,不能像普通變數乙個對成員屬性就行初始化,所以使用建構函式。
class point
double getx( )
double gety( )
private:
double x;
double y;
};建構函式注意事項:
1.建構函式可以過載;
2.建構函式沒用返回值;
3.建構函式在建立物件時被呼叫;
4.當不寫建構函式時,系統會呼叫預設的建構函式。
拷貝(複製)建構函式是一種特殊的建構函式,其形參為本類的物件引用。
class 類名
;class point
point(point & p);
//拷貝建構函式
double getx( )
double gety( )
private:
double x;
double y;
};point::point(point & p)
(1)當用類的乙個物件去初始化該類的另乙個物件時系統自動呼叫它實現拷貝賦值
void main( )
(2)若函式的形參為類物件,呼叫函式時,實參賦值給形參,系統自動呼叫拷貝建構函式
void fun1(point p)
void main( )
(3)當函式的返回值是類物件時,系統自動呼叫拷貝建構函式
point fun2( )
void main( )
注意:如果程式設計師沒有為類宣告拷貝初始化建構函式,則編譯器自己生成乙個拷貝建構函式
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...
建構函式和拷貝建構函式
建構函式 簡單地說建構函式是類函式,函式名與類名完全相同,無返回值 建構函式屬於類的成員函式,除了具有一般成員函式的特點外,還具有自己的特點 1 是類的乙個特殊的成員函式,函式名與類名相同 2 訪問屬性應該是public 3 功能是初始化物件,在建構函式中一般不作初始化以外的事情 4 可以在類內定義...
C 建構函式和拷貝建構函式詳解
建構函式 析構函式與賦值函式是每個類最基本的函式。它們太普通以致讓人容易麻痺大意,其實這些貌似簡單的函式就象沒有頂蓋的下水道那樣危險。每個類只有乙個析構函式和乙個賦值函式,但可以有多個建構函式 包含乙個拷貝建構函式,其它的稱為普通建構函式 對於任意乙個類a,如果不想編寫上述函式,c 編譯器將自動為a...