【C++初學】類和物件定義與建構函式
阿新 • • 發佈:2018-11-14
一.類和物件定義
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; }