看板 ask 關於我們 聯絡資訊
我好奇為什麼這個印出的是10, 而不是30?有沒有高手幫我解惑,謝謝 #include <iostream> using namespace std; class Test{ public: int i=10; void set(int i){ i=i; } }; int main() { Test t; t.set(30); cout<<t.i<<endl; return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.33.121 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/ask/M.1586922895.A.6DB.html
aalxxss: set裡面應該是 this.i = i;04/15 12:22
alwang: 變數的scope搞錯了04/15 12:41
Schottky: 因為寫錯04/15 13:08
這是考題當然故意寫錯,只是好奇關鍵點在哪,導致印出是10 ※ 編輯: NTUveryGood (114.137.33.121 臺灣), 04/15/2020 13:14:16
sonefish: 你預設就給了10 只呼叫預設當然是印出10吧 04/15 13:59
ton200168: 1f比較正確 04/15 15:59
tntchn: i =i 的兩個i 都只在set()裡有用 04/15 18:08
ctrlbreak: 2樓是題目的觀念 1樓是解法 04/15 23:03
ludioxs: 你的30只改變set裡面的區域變數i 不是外面的全域變數i 當 04/18 21:10
ludioxs: 然還是10呀 04/18 21:10