1. 程式人生 > >c++:建構函式

c++:建構函式

建構函式的目的:建立一個物件的時候物件初始化

注意:c++中,構造方法分為帶參構造方法無引數構造方法,系統預設建構函式;

當申明一個物件的時候,如果成員方法中寫有帶引數的構造方法,就必須寫無引數的構造方法。

如果未寫有帶引數的構造方法,可以不寫五引數構造方法,系統會自動預設非配一個無引數構造方法(defaut consturctor)!

#include<iostream>

using namespace std;

class Student
{

public:
    Student(){} //預設構造方法:因為下面已經寫有帶引數的構造方法,就必須寫這裡的預設構造方法
    Student(int n,string nam,char s):num(n),name(nam),sex(s){}//帶引數構造:已寫有帶引數預設構造方法
private:
    int num;
    string name;
    char sex;
};

int main( )
{
    Student stu1;
    Student stu2(2078,"wang",'m');
    Student stu3[30];
}

否則系統在宣告物件時無法識別:



初始化成員物件也可以用引數初始化表來實現:


構造方法中最好不要加入與初始化無關的內容:


呼叫自定義函式給成員屬性初始化系統預設建構函式的初始化

自定義函式是在宣告之後呼叫函式,預設建構函式是在宣告的同時初始化;



類的宣告和物件的定義:


初始化引數列表不能初始化字串陣列,因為字串陣列必須在花括{}號裡面操作定義strcpy()

改進方案->

將字串陣列換成string類卻可以