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.析構函式剛好相反 菜鳥教學下面這樣解釋 類的析構函式是類的一種特殊的成員函式,它會在每次刪除所建立的物件時執行。析構函式的名稱與類的名稱是完全相同的,只是在前面加了個波浪號 作為字首,它不會返回任何值,也不能帶有任何引數。析構函式有助於在跳出...