[問題] 建構子的問題

看板C_and_CPP (C/C++)作者時間16年前 (2009/01/30 11:50), 編輯推噓4(402)
留言6則, 5人參與, 最新討論串1/2 (看更多)
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)

01/30 12:06, , 1F
可以合併成一個MyClass(int x = 0, int y = 0) { ... };
01/30 12:06, 1F

01/30 12:16, , 2F
MyClass::MyClass : x(0), y(0) <- "初始化串列"
01/30 12:16, 2F

01/30 12:41, , 3F
C++ 建構子不能 chaining 要額外建一個 init 的函式
01/30 12:41, 3F

02/02 21:02, , 4F
2F 方法提供較佳的效率
02/02 21:02, 4F

02/02 22:59, , 5F
樓上,就這個例子而言,x跟y都是built-in type,無論是
02/02 22:59, 5F

02/02 23:00, , 6F
initialization list或是assignment,他們的"效率"是一樣的
02/02 23:00, 6F
文章代碼(AID): #19WdZyGm (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19WdZyGm (C_and_CPP)