[討論] 建構子

看板C_and_CPP作者 (de)時間14年前 (2011/10/27 14:25), 編輯推噓0(0010)
留言10則, 7人參與, 最新討論串1/1
前幾天去筆試碰到的問題 class Foo{ public: Foo(int i):_i(i){} void foo(int i){ printf("%d",i); i=_i; } private: int _i; }; int main(int argc, char *argv[]) { int x=0; Foo cFoo(10); cFoo.foo(x ); cFoo.foo(x ); } 問會印出什麼 _i(i){}有這種用法@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.188.135

10/27 14:28, , 1F
10/27 14:28, 1F

10/27 14:31, , 2F
這用法書上一定會寫吧
10/27 14:31, 2F

10/27 14:32, , 3F
google查「c++ initialization list」
10/27 14:32, 3F

10/28 11:41, , 4F
"10 0" ~wwww
10/28 11:41, 4F

10/28 11:55, , 5F
什麼都不會印吧 因為private constructor XD
10/28 11:55, 5F

10/28 15:14, , 6F
這段code應該連跑都不能跑吧,你的建構子不是public,外部
10/28 15:14, 6F

10/28 15:15, , 7F
根本不能使用
10/28 15:15, 7F
※ 編輯: kinding 來自: 61.227.181.4 (10/28 15:43)

10/28 15:44, , 8F
已改正
10/28 15:44, 8F

10/28 16:01, , 9F
這樣的話,_i(i)有跟沒有都無所謂,怎麼印都是X的值
10/28 16:01, 9F

10/28 16:04, , 10F
_i(i),把i賦值給Foo._i
10/28 16:04, 10F
文章代碼(AID): #1EgFbaC7 (C_and_CPP)