建構函式名與類名相同。 函式沒有函式返回值,就是將返回值說明成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...