1. 程式人生 > 其它 >[自用初學]c++的建構函式

[自用初學]c++的建構函式

#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>
 
class
Student { 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