求帮忙看看这个C++程序

lanceyang1992 2014-11-05 08:16:30
要用上下方向键改变状态,为什么感觉bj.state这个量每次都没变呢?

请帮忙看下,应该改成什么?
class lamp
{
public:
int brighten(int a);
int darken(int a);
int state;
};

int main()
{
lamp bj;
bj.state=0;//close
char ch;
while(1)
{
ch=getch();
if(ch==72)//UP
cout<<"当前提高亮度为"<<bj.brighten(bj.state)<<endl;
if(ch==80)//DOWN
cout<<"当前降低亮度为"<<bj.darken(bj.state)<<endl;
}
return 0;
}
int lamp::brighten(int a)
{
if (a<3)
a++;
else
a=0;
return a;
}
int lamp::darken(int a)
{
if (a>0)
a--;
else
a=3;
return a;
}
...全文
61 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjf8882300 2014-11-05
  • 打赏
  • 举报
回复
int lamp::brighten(int& a);//改成引用传递 int lamp::darken(int& a);//改成引用传递
wjf8882300 2014-11-05
  • 打赏
  • 举报
回复
你这种写法不会改变bj.state的值bj.brighten(bj.state) 可以改成下面这样
QIUSQJF 2014-11-05
  • 打赏
  • 举报
回复
你又没让人家变,它怎么可能自己变啊,记住传入数值的参数传进函数里都是一个副本……

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧