我的C ++温度转换有什么问题?

时间:2014-05-05 12:49:59

标签: visual-studio-2010 c++11

我正在尝试编写一个采用华氏温标值的程序,验证该值以确保它是合法的,并返回华氏温度,摄氏温度和牛顿值的正确值。

以下代码不断给出第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;

}

1 个答案:

答案 0 :(得分:0)

您需要使用::代替.此外,您的班级名为temperature,而不是freezing

void temperature::setFahrenheit()

另见this question

还有一些其他错误:

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;

您可以在此处使用nnewton变量,但尚未在任何位置定义它们。他们应该是你温度等级的成员。

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类的小写tTemperature类不存在。 并且没有定义构造函数,因此您无法在其中传递32

Freezing.setFahrenheit();
Freezing.setCelsius();

这两行引用了Freezing,但您调用了变量freezing