理解C 構(gòu)造和析構(gòu)函數(shù)
C 是一種廣泛使用的計(jì)算機(jī)編程語言,作為C語言的繼承,它支持多范型的通用程序設(shè)計(jì)語言。C 可以支持過程化程序設(shè)計(jì)、數(shù)據(jù)抽象化、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格。在系統(tǒng)開發(fā)、引擎開發(fā)
C 是一種廣泛使用的計(jì)算機(jī)編程語言,作為C語言的繼承,它支持多范型的通用程序設(shè)計(jì)語言。C 可以支持過程化程序設(shè)計(jì)、數(shù)據(jù)抽象化、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格。在系統(tǒng)開發(fā)、引擎開發(fā)等應(yīng)用領(lǐng)域中,C 非常受程序員喜愛。
了解C 數(shù)學(xué)庫(kù)中的函數(shù)
在C 中,有許多數(shù)學(xué)庫(kù)函數(shù)可供使用。下面將通過指導(dǎo)您一步一步操作來了解這些函數(shù)。
首先,雙擊或右擊打開桌面上的Dev-C 軟件,并運(yùn)行它。Dev-C 是一個(gè)適合初學(xué)者使用的入門級(jí)C/C 集成開發(fā)環(huán)境(IDE)。它集成了MinGW中的GCC編譯器、GDB調(diào)試器和AStyle格式整理器等自由軟件,界面簡(jiǎn)潔明了,功能強(qiáng)大。
然后,點(diǎn)擊文件,選擇新建源代碼。此時(shí),會(huì)創(chuàng)建一個(gè)空白文件,文件名未命名。您可以通過界面左上角的文件選項(xiàng),選擇另存為,將其保存在電腦上的任意位置。為了方便日后查找,建議將文件保存在桌面上。
接下來,介紹常量引用參數(shù)的使用。如果您希望在函數(shù)中無法改變實(shí)參的值,可以使用const關(guān)鍵字。例如:
void fun(const CMyclass obj) {
// 對(duì)obj進(jìn)行操作的語句將變?yōu)榉欠?
}
了解析構(gòu)函數(shù)和對(duì)象數(shù)組
當(dāng)數(shù)組對(duì)象的生命周期結(jié)束時(shí),每個(gè)對(duì)象數(shù)組的析構(gòu)函數(shù)將被調(diào)用。例如:
class CTest {
public:
~CTest() {
cout << "destructor called" << endl;
}
};
int main() {
CTest array[2];
cout << "End Main" << endl;
return 0;
}
上述代碼中,當(dāng)main函數(shù)執(zhí)行完畢時(shí),會(huì)先輸出"End Main",然后調(diào)用數(shù)組對(duì)象的析構(gòu)函數(shù),打印"destructor called"。
了解析構(gòu)函數(shù)和delete運(yùn)算符
使用delete運(yùn)算符釋放動(dòng)態(tài)分配的內(nèi)存時(shí),析構(gòu)函數(shù)也會(huì)被調(diào)用。例如:
CTest* pTest; pTest new CTest; // 構(gòu)造函數(shù)調(diào)用 pTest new CTest[3]; // 構(gòu)造函數(shù)調(diào)用3次 delete pTest; // 析構(gòu)函數(shù)調(diào)用 delete[] pTest; // 析構(gòu)函數(shù)調(diào)用3次
了解析構(gòu)函數(shù)在作為返回值時(shí)的調(diào)用
當(dāng)對(duì)象作為函數(shù)返回值返回后,析構(gòu)函數(shù)也會(huì)被調(diào)用。例如:
class CMyclass {
public:
~CMyclass() {
cout << "destructor" << endl;
}
};
CMyclass obj;
CMyclass fun(CMyclass sobj) {
return sobj; // 返回時(shí)生成臨時(shí)對(duì)象
}
void main() {
obj fun(obj); // 調(diào)用函數(shù)返回值(臨時(shí)對(duì)象)后,該臨時(shí)對(duì)象的析構(gòu)函數(shù)被調(diào)用
}
上述代碼中,臨時(shí)對(duì)象在生成時(shí)調(diào)用了構(gòu)造函數(shù),而在臨時(shí)對(duì)象消亡時(shí)調(diào)用了析構(gòu)函數(shù)。
總結(jié)
學(xué)習(xí)C 的構(gòu)造和析構(gòu)函數(shù)需要勤加練習(xí),并做好筆記。及時(shí)溫習(xí)知識(shí),才能更好地掌握并應(yīng)用這些概念。