我无法让它显示更新的温度

  • 本文关键字:更新 温度 显示 c++
  • 更新时间 :
  • 英文 :


我正在努力使其成为这样,如果用户选择1,它应该将温度增加5,而如果用户选择2,它应该降低温度。我遇到的问题是它不能更新温度值。

更新:我终于完成了数学部分,但由于某种原因,当我打印温度值时,它不会保存更新。如果我做得更暖和,它总是在20,如果我做的更凉爽,它总是10。我想我必须使用getTemp((,因为我只编辑局部变量?我该怎么做?

#include <iostream>
using namespace std;

class heater 
{
public:
int temperature;
int min;
int max;
int increment;
heater(int min=0, int max=60)
{
increment = 5;
temperature = 15;
}

int warmer(int);
int cooler(int);
int getTemp(int);

};
int heater::warmer(int temperature) {
if (temperature > (temperature - increment))
{
temperature += increment;
return temperature;
}
else cout << "Max temp reached.";
}
int heater::cooler(int temperature) {
if (temperature < (temperature + increment)){
temperature -= increment;
return temperature;
}
else cout << "Min temp reached.";
}
int heater::getTemp(int temperature) {
return temperature;
}
int main()
{
heater w;
heater c;
heater t;
heater g;
int i;
int number;
int temp;
for (i = 1; i != 0; i=1)
{
cout << "n1. Warmer n";
cout << "2. Cooler n";
cout << "Press 0 to exit. n";
cin >> number;
if (number == 1) {
temp = w.warmer(t.temperature);
cout << "The temperature is now: " << temp;
}
else if (number == 2) {
temp = c.cooler(t.temperature);
cout << "The temperature is now: " << temp;
}
else if (number == 0){
break;
}
}
return 0;
}

在名为temperatureint heater::warmer(int temperature)参数中,会对名为temperature的类成员进行阴影处理,并且只能修改该局部参数。

只需删除这些参数并修改您的类成员:

#include <iostream>
using namespace std;

class heater 
{
public:
int temperature;
heater()
{
temperature = 15;
}

int warmer();
int cooler();
int getTemp();

};
int heater::warmer() {
temperature -= 5;
}
int heater::cooler() {
temperature += 5;
}
int heater::getTemp() {
return temperature;
}
int main()
{
heater w;
heater c;
heater t;
int number;
cout << "1. Warmer n";
cout << "2. Cooler n";
cin >> number;
if (number == 1) {
w.warmer();
cout << "The temperature is now: " << t.temperature;
}
else if (number == 2) {
c.cooler();
cout << "The temperature is now: " << t.temperature;
}
return 0;
}

此外,行heater getTemp();没有做任何有用的事情。它声明了一个全局函数,该函数返回heater并且不接受任何参数。您可能想这样调用成员函数:

cout << "The temperature is now: " << t.getTemp();

最新更新