看板 C_and_CPP 關於我們 聯絡資訊
class MyClass{ public: MyClass(); MyClass(int x,int y); protected: int x; int y; bool isLeaf; } MyClass::MyClass(){ MyClass(0,0); <----這樣好像是錯的,請問要怎麼做呢? } compile雖然會過,但member未初始化 MyClass::MyClass(int x,int y){ this->x=x; this->y=y; this->isLeaf=false; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.71.75 ※ 編輯: neigence 來自: 59.116.71.75 (01/30 12:05)
Song6Lin:可以合併成一個MyClass(int x = 0, int y = 0) { ... }; 01/30 12:06
yoco315:MyClass::MyClass : x(0), y(0) <- "初始化串列" 01/30 12:16
firose:C++ 建構子不能 chaining 要額外建一個 init 的函式 01/30 12:41
montreal:2F 方法提供較佳的效率 02/02 21:02
cackle:樓上,就這個例子而言,x跟y都是built-in type,無論是 02/02 22:59
cackle:initialization list或是assignment,他們的"效率"是一樣的 02/02 23:00