我正在尝试编写一个采用华氏温标值的程序,验证该值以确保它是合法的,并返回华氏温度,摄氏温度和牛顿值的正确值。
以下代码不断给出第21,25,29行的错误消息(空白')
#include <iostream>
using namespace std;
class temperature {
public:
double getFahrenheit();
double getCelsius();
double getNewton();
void setFahrenheit();
void setCelsius();
void setNewton();
private:
double fahrenheit, Celsius;
double c, f;
};
void freezing.setFahrenheit(){
f = 32;
fahrenheit = f;
}
void freezing.setCelsius(){
c = (5.0/9.0) * ( f - 32);
celsius = c;
}
void freezing.setNewton(){
n=(33.0/100.0)*c;
newton=n;
double freezing.getFahrenheit(){
return fahrenheit;
}
double freezing.getCelsius(){
return Celsius;
}
Double freezing.getNewton(){
Return Newton;
}
int main() {
Temperature freezing(32);
Freezing.setFahrenheit(); Freezing.setCelsius();
Freezing.setNewton();
cout << "water freezes at " << freezing.getFahrenheit() << " Fahrenheit, " << freezing.getCelsius() << " Celisus, and " << freezing.getNewton() << " Newton" << endl;
return 0;
}
答案 0 :(得分:0)
您需要使用::
代替.
此外,您的班级名为temperature
,而不是freezing
void temperature::setFahrenheit()
还有一些其他错误:
void temperature::setCelsius(){ //and not void freezing.setCelsius
c = (5.0/9.0) * ( f - 32);
celsius = c;
}
在这里,您引用了celsius
,但temperature
类定义了Celsius
,并使用了一个C。
void freezing.setNewton(){
n=(33.0/100.0)*c;
newton=n;
您可以在此处使用n
和newton
变量,但尚未在任何位置定义它们。他们应该是你温度等级的成员。
Double freezing.getNewton(){
Return Newton;
}
这里有大写字母,没有意义,应该是
double temperature::getNewton(){
return newton; //you need to make this a member variable of your class too..
}
Temperature freezing(32);
您的temperature
类的小写t
,Temperature
类不存在。
并且没有定义构造函数,因此您无法在其中传递32
。
Freezing.setFahrenheit();
Freezing.setCelsius();
这两行引用了Freezing
,但您调用了变量freezing