1、建構函式一大功能就是初始化成員變數
(1)預設建構函式不帶參,無初始化功能
(2)若無其他建構函式,則預設建構函式可以省略。但若有哪怕1個其他建構函式,則預設建構函式不能省,必須寫上。
(3)棧上分配物件時,若使用預設建構函式,則物件變數後面不加空的(),若用帶參構造才需要加(初始化引數)
2、c++的成員初始化列表
(1)一般用於帶參建構函式中,用來給屬性傳參賦值
(2)成員初始化列表和建構函式之間用冒號間隔,多個列表項之間用逗號間隔
(3)初始化列表可以替代建構函式內的賦值語句,達到同樣效果
3、建構函式使用引數預設值
(1)class宣告時可以給函式形參賦值乙個預設值,實際呼叫時若不傳參就使用預設值
(2)方法實現時形參可以不寫預設值,但是實際是按照宣告時的預設值規則的
(3)有預設值情況,要注意實際呼叫不能有過載歧義,否則編譯不能通過
(4)所有引數都帶預設值的建構函式,1個可以頂多個建構函式(舉例說明)
person.hpp
1#ifndef __person_h__
2#define __person_h__
34 #include
5using
namespace
std;67
namespace
man8;38
39 } //
end of namespace man
4041
#endif
person.cpp
#include "person.hpp
"#include
using
namespace
std;
//class的成員函式中可以引用class的成員變數,但是要考慮public和private這些
void man::person::eat(void
)void man::person::work(void
)
else
}void man::person::sleep(void)//
列印出物件的成員的值
void man::person::print(void
)man::person::person()
/*man::person::person(string myname):name(myname)
*/man::person::person(
string myname, int myage, bool
mymale) :name(myname), age(myage), male(mymale)
man::person::~person()
main.cpp
#include "person.hpp
"using
namespace
man;
int main(void
)
c 建構函式初始化類成員
includeusing namespace std class box box box int h,int w,int l int box volume int main box box int h,int w,int l hight h width w length l int box volu...
類的初始化(建構函式)
1.類成員為const型別 2.類成員為引用型別 include using namespace std class a void print val private const inti intp int j int main int argc char argv 究其因 const物件或引用只能...
C 類成員變數和建構函式初始化
c 中各種型別的成員變數的初始化方法 c 成員變數 建構函式的初始化順序 c 類中成員變數的初始化總結 成員變數初始化位置 普通變數 建構函式的初始化列表中初始化或者建構函式體內進行賦值 static靜態變數 類外進行初始化 const常量變數 建構函式的初始化列表中初始化 引用變數 建構函式的初始...