C++ 中温度类的类中的读取方法

Posted

技术标签:

【中文标题】C++ 中温度类的类中的读取方法【英文标题】:Read method in classes for Temperature Class in c++ 【发布时间】:2014-04-13 19:19:50 【问题描述】:

我正在尝试使用读取方法来读取温度值和华氏度或摄氏度的字符。我在我的编程书中找不到关于 read 方法的任何内容。我还必须在我的主程序中更改我的 for 循环以循环一系列值,但这也不起作用。这是我的代码:

#include <iostream>
using namespace std;

// Interface for Temperature class
class Temperature

public:
   Temperature();
   Temperature(const Temperature & Temp);
   ~Temperature();
   double getCelsius() const;
   double getFahrenheit() const;
   void setCelsius(double Temp);
   void setFahrenheit(double Temp);
   void print();
   void read();

private:
   static const double ABSOLUTE_ZERO = -273.15;
   double CelsiusTemperature;
;

// Implementation of Temperature class
void Temperature::print()

      cout << getFahrenheit() << "F = " << getCelsius() << "C\n";

void Temperature::read()

   double num;
   char C;

   cin >> num >> C;
   cin >> num >> C;
   if (C != 'F' || C != 'f' || C != 'C' || C != 'c')
     cout << " ";
 
Temperature::Temperature()

   CelsiusTemperature = 0;

Temperature::Temperature(const Temperature & Temp)

   CelsiusTemperature = Temp.CelsiusTemperature;


Temperature::~Temperature()

   

double Temperature::getCelsius() const

   return CelsiusTemperature;


double Temperature::getFahrenheit() const

   return 9.0 * CelsiusTemperature / 5.0 + 32.0;


void Temperature::setCelsius(double Temp)

   CelsiusTemperature = Temp;
   if (CelsiusTemperature < ABSOLUTE_ZERO)
      CelsiusTemperature = ABSOLUTE_ZERO;


void Temperature::setFahrenheit(double Temp)

   CelsiusTemperature = (Temp - 32.0) * 5.0 / 9.0 ;
   if (CelsiusTemperature < ABSOLUTE_ZERO)
      CelsiusTemperature = ABSOLUTE_ZERO;


// Program to test Temperature class
int main()

   Temperature Start;
   Temperature End;
   Temperature Temp;
   cout << "Enter start temperature: ";
   Temp.read();
   cout << "Enter end temperature: ";
   Temp.read();

   cout.precision(3);
   for (F = Start; F <= End; F++)
   
      Temperature Temp;
      Temp.setFahrenheit(F);
      Temp.print();
   
   return 0;

【问题讨论】:

【参考方案1】:

有几点:

你没有初始化StartEnd 您的read 函数未设置CelsiusTemperature 你没有声明变量F 您使用相同的 Temp 变量来读取开始和结束温度 您没有为Temperature 类定义任何特定的比较运算符,也没有任何转换运算符将其转换为整数/浮点值,您也没有采用非@ 值的非显式构造函数987654328@

【讨论】:

我应该如何初始化 Start 和 End?

以上是关于C++ 中温度类的类中的读取方法的主要内容,如果未能解决你的问题,请参考以下文章

从 .NET Core 2 中的类中读取 appsettings.json

c++ 如何在构造函数中启动一个线程,从命名管道读取数据?

动态读取项目文件夹中的类

如何在启动类中读取应用程序 URL,特别是在 .net core 3.1 中的“ConfigureService”方法中?

简单工厂模式使用ResourceBundle读取.properties配置文件

C++ 从事件处理程序中获取数据并传递给另一个类的方法?