C 中的建構函式 拷貝建構函式 析構函式

2021-08-23 14:07:13 字數 1699 閱讀 7783

1、建構函式constructor

(1)建構函式的名字必須與類名相同;

(2)建立物件時自動呼叫的,且僅執行一-次 ;

(3)public ,無返回值,無需定義返回型別;

(4)允許過載,可以定義多個

(5)盡量簡單,太複雜、包含大量邏輯處理的

(6)初始化工作建議用單獨的init()方法實現

(7)避免物件建立時出錯

this是乙個指標 ,指向物件自己

2、預設建構函式

在沒有定義任何建構函式時,編譯器會提供乙個預設建構函式

·無引數,無任何**

.一旦定義了任意乙個建構函式,

·就不提供預設建構函式

3、拷貝建構函式

下列語句發生時,會執行拷貝建構函式:

這是物件需要通過另外乙個物件進行初始化的一種情況

teacher t2 = t1;

teacher t3(t2);

4、析構函式

·函式的反函式

·格式public ~time();

·無引數、無返回值

·不允許過載(只能有乙個)

·銷毀時自動呼叫,處理資源清理工作

**:

teacher.h

#include #include using namespace std;

class teacher;

teacher.cpp

#include "stdafx.h"

#include "teacher.h"

#include #include using namespace std;

teacher::teacher(const teacher &tea) //拷貝建構函式

teacher::teacher()//無引數建構函式

}teacher::teacher(string n, int a)//有引數建構函式

teacher::~teacher()//析構函式

}void teacher::setname(string _name)

string teacher::getname()

void teacher::setgender(string _gender)

string teacher::getgender()

void teacher::setage(int _age)

int teacher::gerage()

main.cpp

#include #include #include "teacher.h"

using namespace std;

int _tmain(int argc, _tchar* argv)

C 建構函式 拷貝構造 析構函式

建構函式 constructor 在例項物件時,系統自動呼叫,用來初始化物件的資料成員 建構函式宣告語法 類名 引數列表 建構函式注意點 include include using namespace std class computer 上面的建構函式也可以寫成引數列表初始化的形式 compute...

C 建構函式 析構函式 拷貝建構函式

建構函式 析構函式 拷貝建構函式 如果類成員變數有初始值,用這些初始值初始化成員變數 如果類成員變數沒有初始值,則預設初始化該成員變數 class student int main 使用注意事項 語法 這個預設建構函式之所以對student有效,是因為我們為內建型別的資料成員提供了初始值 如果你的編...

建構函式 拷貝建構函式 析構函式

1.如果定義了兩個預設建構函式,vc只回給出warning.2.如果有預設引數的預設構造,如果你給了第乙個預設的話 所有傳遞引數都要有預設植 否則報錯.不過如果是第乙個引數的預設值沒有給出的話,編譯器卻看不出問題,但是沒有 試過這種情況建構函式能不能正常工作.建構函式 用來初始化物件的資料成員,與類...