[自用初學]c++的建構函式
阿新 • • 發佈:2022-12-12
#include <stdio.h> #include <string.h> class Student { private: int id; char name[32]; public: Student(int id, const char* name) { this->id = id; strcpy(this->name, name); } }; int main() { Student s ( 201601, "shaofa"); return 0; }
例子如上:建構函式與類名相同,其中的形參都是類元素(id name),然後在函式體裡給類元素進行了初始化。
一、建構函式的作用
建構函式的作用有三:1.讓類可以以【Student s ( 201601, "shaofa");】的形式建立一個類物件;2.完成初始化;3.為物件的資料成員開闢記憶體空間。
如果不像上面一樣寫一個顯式的建構函式,那麼編譯器會為類生成一個預設的建構函式, 稱為 "預設建構函式", 預設建構函式不能完成物件資料成員的初始化, 只能給物件建立識別符號, 併為物件中的資料成員開闢一定的記憶體空間。
二、預設建構函式
預設建構函式不傳參,如果需要指定引數的初始化值,需要在函式體中指定。
#include <stdio.h> #include <string.h> classStudent { private: int id; char name[32]; public: // 預設建構函式 Student() { id = 0; name[0] = 0; } // 帶參建構函式 Student(int id, const char* name) { this->id = id; strcpy(this->name, name); } }; int main() { Student s1 ; Student s2 (201601, "shaofa"); return 0;
而像上面那種帶引數的顯示建構函式,可以在傳參的時候指定函式的初始化值,所以寫一個顯示建構函式更方便,就不需要去修改類裡面的函式體了。
https://blog.csdn.net/qq_20386411/article/details/89417994