1. 程式人生 > >【C++初學】類和物件定義與建構函式

【C++初學】類和物件定義與建構函式

一.類和物件定義
class 型別名
{
public:
公有成員(外部介面)
private:
私有成員(只允許類內函式訪問,有後續操作)
protected:
保護成員

二.建構函式
def:給物件進行初始化的函式。
gra:
函式名與類名相同;
無返回值(return);
1.委託建構函式:可以以後在修改建構函式時,只修改一次。
2.複製建構函式:用已經存在的物件初始化另一個物件
形參必須為本類物件的引用&p,需加const;
發生複製構造的三種情況:
①用一個物件初始化另一個物件
②物件為函式形參,用實參初始化形參
③函式return一個物件
可以自定義複製程度,預設只能一一對應
3.解構函式:完成物件被刪除前的清楚工作。

#include <iostream>

using namespace std;
//類的定義
class Clock
{
public:
    Clock(int newH,int newW,int newS);//宣告建構函式
    Clock();//宣告預設建構函式
    Clock(const Clock &c)=delete//指示編譯器不生成複製建構函式
    ~Clock();//預設解構函式
    void setTime(int newH=0,int newM=0,int newS=0);
    void showTime();
private:
    int hour,minute,second;
};
//建構函式的實現
Clock::Clock(int newH,int newM,int newS):
    hour(newH),minute(newM),second(newS)//將形參初始給成員
    {}//無返回值
//預設建構函式實現
Clock::Clock():
    hour(0),minute(0),second(0)//初始化成員
    {}
//預設建構函式利用委託實現
Clock():Clock(0,0,0){}
//類中函式實現
void Clock::setTime(int newH,int newM,int newS)
{
    hour=newH;
    minute=newM;
    second=newS;
}
//解構函式實現
Clock::~Clock(){}
void Clock::showTime()
{
    cout<<hour<<":"<<minute<<":"<<second;
}
int main()
{
    Clock myClock(0,0,0);//定義物件並初始化,呼叫有形參的建構函式
    Clock myClock2;//定義物件並初始化,呼叫預設建構函式
    myClock.showTime();
    myClock2.showTime();
    return 0;
}