[请问] 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