一、構造函數:當一個類的對象被聲明時,構造函數將自動調用,以便對該對象的某些或全部成員變量進行初始化。
需要注意以下幾點:
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、一個類只能包含一個析構函數,不能將類的析構函數進行重載。