[問題] constructor(建構子)reuse

看板C_and_CPP作者 (雨四光)時間13年前 (2012/03/20 11:58), 編輯推噓3(306)
留言9則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我想要Java裡面this constructor的功能 我有一個class class myClass{ private: int k; public: ... } myClass::myClass(int num){ k=num; } myClass::myClass(){ myClass(0); } 結果我發現myClass(0)只是創造出一個暫時的物件 不會去改到k的值 改寫成: (*this)=myClass(0); 是否正確? 或有其他寫法? -- 儘管生命的起源只是一種化學反應 儘管人類的存在只是記憶數據的影子 儘管靈魂並不存在,精神只是神經細胞的火花    儘管世上沒有神,人一定要靠一己之力在這殘酷的世界中掙扎求存   我還是...... 我還是...... 要以意識之名命令你───「活下去」 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.85.231

03/20 12:00, , 1F
myClass::myClass(int num) : k(num) {}
03/20 12:00, 1F

03/20 12:06, , 2F
03/20 12:06, 2F
我試了這段程式碼 class X { int i_; public: X( int i ) : i_(i) { } X() : X(42) { } // i_ == 42 }; 他報錯: error: type 'X' is not a direct base of 'X' 是我會錯意嗎?

03/20 12:10, , 3F
這個功能是C++11
03/20 12:10, 3F
我用的是code::block和mingw包在一起的IDE,不知道有沒有支援? 這是要傳到ACM online judge的東西,他是寫 C++ 4.1.2 - GNU C++ Compiler with options: -lm -lcrypt -O2 -pipe -DONLINE_JUDGE 這compiler夠新嗎?

03/20 14:18, , 4F
在init list中呼叫其他ctor
03/20 14:18, 4F
※ 編輯: henry666666 來自: 111.251.193.14 (03/20 15:05)

03/20 15:29, , 5F
03/20 15:29, 5F



03/20 15:31, , 8F
那個功能4.7的,4.1.2不支援,新功能幾乎4.3以上才有
03/20 15:31, 8F

03/20 15:31, , 9F
沒有 4.4 都算很舊了
03/20 15:31, 9F
文章代碼(AID): #1FQ01Ysd (C_and_CPP)