[請問] c程式的問題

作者: NTUveryGood (coo)   2020-04-15 11:54:53
我好奇為什麼這個印出的是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;
}
作者: aalxxss (買一送一)   2020-04-15 12:22:00
set裡面應該是 this.i = i;
作者: alwang (暱稱回來吧)   2020-04-15 12:41:00
變數的scope搞錯了
作者: Schottky (順風相送)   2020-04-15 13:08:00
因為寫錯
作者: sonefish (北歐黑狐)   2020-04-15 13:59:00
你預設就給了10 只呼叫預設當然是印出10吧
作者: ton200168 (丁丁)   2020-04-15 15:59:00
1f比較正確
作者: tntchn (tntchn)   2020-04-15 18:08:00
i =i 的兩個i 都只在set()裡有用
作者: ctrlbreak   2020-04-15 23:03:00
2樓是題目的觀念 1樓是解法
作者: ludioxs (盧小迪)   2020-04-18 21:10:00
你的30只改變set裡面的區域變數i 不是外面的全域變數i 當然還是10呀

Links booklink

Contact Us: admin [ a t ] ucptt.com