2015-04-02 34 views
2

我有一个C++的问题,无法访问我的类的属性温度我无法使用C++访问我的类的属性

这是结构啊,我的项目是: my project structure

文件Temperatura.h代码:

#ifndef TEMPERATURA_H_ 
#define TEMPERATURA_H_ 

class Temperatura 
{ 
private: 
    float temperatura; 

public: 
    Temperatura(float); 

    //SET's 
    void setKelvin(float); 
    void setCelsius(float); 
    void setFahrenheit(float); 

    //GET's 
    float getKelvin(); 
    float getCelsius(); 
    float getFahrenheit(); 
}; 
#endif 

文件Temperature.cpp代码:

#include "headers/Temperatura.h" 
#include <iostream> 

using namespace std; 

Temperatura::Temperatura(float t) 
{ 
    temperatura = t; 
} 

//SET's 
void Temperatura::setKelvin(float t) 
{ 
    temperatura = t; 
    return; 
} 

void Temperatura::setCelsius(float t) 
{ 
    temperatura = t + 273.15; 
    return; 
} 

void Temperatura::setFahrenheit(float t) 
{ 
    temperatura = ((t-32)/1.8)+273.15; 
    return; 
} 

//GET's 
float getKelvin() 
{ 
    float t = temperatura; 
    return t; 
} 

float getFahrenheit() 
{ 
    return ((9*temperatura)/5)-459.67; 
} 

float getCelsius() 
{ 
    return temperatura-273.15; 
} 

和文件Programa1.cpp代码:

#include "headers/Temperatura.h" 
#include <iostream> 

using namespace std; 

int main(int argc, char const *argv[]) 
{ 
    Temperatura t(0); 
    float grados; 

    cout << "Introduzca los grados el setKelvin: "; 
    cin >> grados; 

    t.setKelvin(grados); 
    grados = t.getCelsius(); 

    cout << "Grados en Celsius: " << grados << endl; 

    return 0; 
} 

和输出控制台:

[email protected]:~/Documentos/Distribuidos/Clases/Clase 
2/Proyecto1/Programa1$ g++ *.cpp -o Programa1 
Temperatura.cpp: En la función ‘float getKelvin()’: 
Temperatura.cpp:33:12: error: ‘temperatura’ no se declaró en este ámbito 
Temperatura.cpp: En la función ‘float getFahrenheit()’: 
Temperatura.cpp:39:13: error: ‘temperatura’ no se declaró en este ámbito 
Temperatura.cpp: En la función ‘float getCelsius()’: 
Temperatura.cpp:44:9: error: ‘temperatura’ no se declaró en este ámbito 

对不起,我inglish,我说西班牙语:/

回答

1

你需要你的范围getter函数以同样的方式你完成了你的setter函数。

float Temperatura::getKelvin() 
{ 
    float t = temperatura; 
    return t; 
} 

这意味着该功能是Temperatura

+0

谢谢你这么mouch的方法。我有点瞎了,没有注意到。 :) – Chomboreco 2015-04-03 00:08:57