C 基礎(7)建構函式與析構函式

2021-08-21 17:40:25 字數 1260 閱讀 6452

建構函式名與類名相同。 函式沒有函式返回值,就是將返回值說明成void也不行 。 建構函式一般宣告為公有成員,但是它不能被顯式地呼叫。 建構函式的主要目的是為物件分配空間,進行資料成員的初始化。 如果使用者沒有顯式地在類中寫出建構函式,那麼系統會為該類自動生成乙個預設的建構函式。這個預設建構函式的形式如下:

類名::類名()

建構函式可以被過載,這在工程上十分常見。

cstudent::cstudent()

strcpy(m_strname, "");   

strcpy(m_strid, "");     

m_c*** = '0';     

strcpy(m_strmajor, "");

cstudent(char *strname,char *strid,char c***,char *strmajor)

主函式如下:

void main()

cstudent::~cstudent()

關於析構函式的方法:

(1)析構函式的名稱是在類名前面加上波浪號「~」構成,即「~類名」。

(2)析構函式沒有引數,因此不能被過載。每個類只能有乙個析構函式。

(3)析構函式沒有函式返回值,不能將其返回值說明成void型別。

(4)物件在被撤銷時(生命期結束時),系統會自動呼叫該物件所對應的析構函式。另外,如果乙個物件是通過new運算子動態生成的,那麼在通過delete運算子釋放該物件時,會自動呼叫析構函式。

(5)每個類都必須有乙個析構函式,如果沒有顯式地定義析構函式,那麼編譯系統會自動生成乙個預設析構函式。預設析構函式的函式體是空的。該預設析構函式的目的是釋放物件所佔據的儲存空間。

三。拷貝建構函式

拷貝建構函式是一種特殊的建構函式。它的用途是:當建立乙個新物件時,使用乙個已經定義的物件去初始化這個新物件。例如: cpoint point2(point1); 或 cpoint point2 = point1;

類名(const  類名  &引用物件名) ;

拷貝建構函式被呼叫的三種情況 :

(1)當使用某類的乙個已存在的物件去初始化該類的另乙個物件時。例如: cstudent student2(student1); 或 cstudent student2 = student1;

(2)當函式的形參是某類的物件時,在呼叫該函式時,實參物件向形參物件傳遞值,需要呼叫拷貝建構函式。

(3)如果函式的返回值是某類的物件,那麼在函式呼叫時,會呼叫拷貝建構函式,以把返回值物件複製給乙個系統生成的臨時物件。

C 建構函式與析構函式 C 基礎

public clerk string name,gender gender,int age,string deparment public clerk string name,gender gender,int age 建構函式也是可以過載的program.cs add clerk c3 new ...

C 建構函式與析構函式 C 基礎

public clerk string name,gender gender,int age,string deparment public clerk string name,gender gender,int age 建構函式也是可以過載的program.cs add clerk c3 new ...

C 基礎 (建構函式 析構函式)

constructor中文解釋為建構函式,是一種特殊的函式 constructor function 不應理解為構造器 constructor保證了物件只要被建立出來就會被初始化 constructor與類的名字是相同的 大小寫都一模一樣 constructor沒有任何返回型別 constructo...