c++學習筆記之構造函數和析構函數

一、構造函數:當一個類的對象被聲明時,構造函數將自動調用,以便對該對象的某些或全部成員變量進行初始化。

需要注意以下幾點:

1、必須與類同名。

2、無任何返回值,包括void。

3、使用無參構造函數來初始化對象,聲明對象後不使用括號。

4、假如類已定義了一個或多個參數的構造函數,但沒有包括默認構造函數的定義(既沒有無參構造函數),那麼該類是沒有默認構造函數的。

#include <iostream>
using namespace std;
class Day
{
public:
    Day();
    Day(int monthValue,int dayValue);
    Day(int monthValue);
    void getDay();
private:
    int month;
    int day;
};
Day::Day()
{
    cout<<"調用無參構造函數;"<<endl;
}
Day::Day(int monthValue,int dayValue)
{
    cout<<"調用兩個參數的構造函數;"<<endl;
    month=monthValue;
    day=dayValue;
}
Day::Day(int monthValue)
{
    cout<<"調用一個參數的構造函數;"<<endl;
    month=monthValue;
}
void Day::getDay()
{
    cout<<"調用獲取日期函數;";
    cout<<month<<endl;
}
int main()
{

    Day d1;
    d1.getDay();
    Day d2(3);
    d2.getDay();
    Day d3(2,12);
    d3.getDay();
    return 0;
}

二、析構函數:是一個特殊的成員函數,當 一個類的對象超出其作用域時,將會自動調用類的析構函數,即用於刪除所有給對象創建的動態分配變量。

需要注意以下幾點:

1、析構函數也與類名相同,同時在類名前面加~符號。

2、析構函數沒有返回類型,包括void。

3、析構函數沒有參數。

4、一個類只能包含一個析構函數,不能將類的析構函數進行重載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章