C 中的建構函式和析構函式

2021-08-30 17:33:06 字數 1197 閱讀 2772

1:建構函式

處理物件的初始化。特殊的成員函式,不需要使用者來呼叫,而是在建立物件的時候自動執行。

特點:①與類名相同

②沒有任何返回型別

③定義時可以有引數,可以無引數

2:析構函式

語法 :~classname()

清理物件,析構函式在物件銷毀時自動被呼叫

特點:①沒有引數

②沒有任何返回型別

#include "iostream"

using namespace std;

class test

test(int a_a)

test(int aa ,int bb)

test(const test & obj)

void printtest()

~test()

private:

int a;

int b;

};void main1()

拷貝建構函式

#include "iostream"

using namespace std;

/* 拷貝建構函式的4種呼叫場景:

1: test t(1,2)

test t1 = t

2: test t(1,2)

test t2(t)

3:形如:用tt去初始化p,呼叫形參類的copy建構函式

void f(test p)

void main()

4:形如: 返回乙個匿名物件,把t賦值給匿名物件

test g()

函式的返回值是乙個元素(複雜型別的),返回的是乙個新的匿名物件,所以會呼叫匿名物件的copy建構函式。

*/class test

test(const test & obj)

~test()

private:

int a;

int b;

};void printtest(test t)

void objplaymain()

test gettestobj()

void testnonameobj()

void main()

/* 初始化 vs 賦值

初始化:被初始化的物件正在建立

賦值:被賦值的物件已經存在

*/

C 中建構函式和析構函式

定義 它是一種特殊的方法。主要用來在建立物件時初始化物件,即為物件成員變數賦初始值,總與new運算子一起使用在建立物件的語句中。另外,乙個類可以有多個建構函式 我們可以根據其引數個數的不同或引數型別的不同來區分它們 這就是建構函式的過載 特點 1.建構函式的命名必須和類名完全相同 2.建構函式的功能...

C 中的建構函式和析構函式

在類例項化物件時自動執行,對類中的資料進行初始化。建構函式可以從載,可以有多個,但是只能有乙個預設建構函式。在撤銷物件占用的記憶體之前,進行一些操作的函式。析構函式不能被過載,只能有乙個。先構造的後析構,後構造的先折構。它相當於乙個棧,先進後出。結果顯示 在函式內部定義的自動區域性變數在fun函式呼...

C 中的建構函式和析構函式

1.建構函式,主要是在初始化的時候賦值成員變數等作用。2.析構函式剛好相反 菜鳥教學下面這樣解釋 類的析構函式是類的一種特殊的成員函式,它會在每次刪除所建立的物件時執行。析構函式的名稱與類的名稱是完全相同的,只是在前面加了個波浪號 作為字首,它不會返回任何值,也不能帶有任何引數。析構函式有助於在跳出...