建構函式就是一種函式,他的特點是在物件例項化的時候會自動呼叫,一般用於資料初始化
規則:1、建構函式與類同名
2、建構函式沒有返回值(所以寫建構函式連void都不用寫)
3、建構函式可以有多個過載形式(過載就是引數型別不同,個數不同,順序不同)
4、例項化物件時僅用到乙個建構函式
5、如果沒定義建構函式,編譯器自動生成乙個建構函式
yase.h
class yase
;
yase.cpp
#include "yase.h"
#include using namespace std;
yase::yase(int _hp)
void yase::f1()
void yase::f2()
void yase::f3()
int yase::gethp()
void yase::sethp(int _hp)
cheng = yase(200);//此時cheng這個亞瑟角色生命值為200
我們把例項化物件時不需要傳入引數的建構函式叫做預設建構函式預設建構函式
初始化列表:
class yase
void f1();//1技能
void f2();//2技能
void f3(); //3技能
int gethp();
void sethp(_hp)//這裡只舉hp的例子
private:
int hp;//生命
int wg;//物攻
int fq;//法強
int wk;//物抗
int fk;//法抗
int mj;//敏捷
};
初始化列表特性:
1、初始化列表先於建構函式執行
2、初始化列表只能用於建構函式
3、初始化列表可以同時初始化多個資料成員
初始化列表的意義:可以給const修飾的常量初始化賦值
析構函式是物件被銷毀時呼叫的函式
定義格式:~類名()
特點:1、沒有自定義析構函式系統會自動生成
2、析構函式在物件銷毀時自動呼叫
3、析構函式沒有返回值、沒有引數也不能過載
補充:物件的生命歷程
申請記憶體->初始化列表->建構函式->參與運算->析構函式->釋放記憶體
C 建構函式之預設建構函式
參考部落格 以下內容是在上述博主的部落格中提煉出來的 一 預設建構函式的含義是啥 主要就是 預設建構函式在呼叫的時候不需要顯示傳入實參的建構函式 二 預設的建構函式的分類 1 無參建構函式 就是沒有引數的建構函式 class sample 2 帶有形參,並且帶有預設值的建構函式 class samp...
C 建構函式之委託建構函式
委託建構函式 c 11新標準擴充套件了建構函式初始值的功能,使得我們可以定義所謂的委託建構函式。乙個委託建構函式使用它所屬類的其他建構函式執行它自己的初始化過程,或者說它把它自己的一些 或者全部 職責委託給了其他建構函式。和其他建構函式一樣,乙個委託建構函式也有乙個成員初始值的列表和乙個函式體。在委...
C 之建構函式
參考 c 程式設計指南 類是否用 static 來修飾,有兩種,一種是用static修飾,一種則不是。對於前者,如果,類提供了乙個無引數的建構函式,那麼new 例項化物件時候,就會呼叫這個無引數的建構函式 也叫預設建構函式 如果,類提供了乙個有引數的建構函式,但是new時候,依然沒有提供引數,那麼情...