Question: Your task in this homework assignment is write two derived class. The base class of `Temperature` has been provided with an example derived class of
Your task in this homework assignment is write two derived class.
The base class of `Temperature` has been provided with an example derived class of `Kelvin`.
In this assignment, you will write a `Celsius` and `Fahrenheit` derived class from `Temperature`.
In C++ language:
## Solution Specifications
Your solution to this problem must meet the following criteria.
1. Write a `Celsius` and `Fahrenheit` classes that inherits from `Temperature`.
2. The classes should use encapsulation with both a header and cpp file.
3. Implement the functions to convert the temperature to `Celsius`, `Fahrenheit`, and `Kelvin` for each class.
Temperature.h file:
#ifndef TEMPERATURE_H
#define TEMPERATURE_H
class Temperature {
private:
double temperature;
public:
Temperature(double temperature) { this->temperature = temperature; };
double getTemperature() const { return temperature; };
virtual void printTemperature() const = 0;
// Conversions
virtual double getTemperatureInCelsius() const = 0;
virtual double getTemperatureInFahrenheit() const = 0;
virtual double getTemperatureInKelvin() const = 0;
};
#endif // TEMPERATURE_H
main.cpp file:
#include "Celsius.h"
#include "Fahrenheit.h"
#include "Kelvin.h"
#include
using namespace std;
int main() {
Fahrenheit fTemp(98.6);
fTemp.printTemperature();
cout << "In Celsius: " << fTemp.getTemperatureInCelsius() << endl;
cout << "In Fahrenheit: " << fTemp.getTemperatureInFahrenheit() << endl;
cout << "In Kelvin: " << fTemp.getTemperatureInKelvin() << endl;
cout << endl;
Celsius cTemp(37);
cTemp.printTemperature();
cout << "In Celsius: " << cTemp.getTemperatureInCelsius() << endl;
cout << "In Fahrenheit: " << cTemp.getTemperatureInFahrenheit() << endl;
cout << "In Kelvin: " << cTemp.getTemperatureInKelvin() << endl;
cout << endl;
Kelvin kTemp(310.15);
kTemp.printTemperature();
cout << "In Celsius: " << kTemp.getTemperatureInCelsius() << endl;
cout << "In Fahrenheit: " << kTemp.getTemperatureInFahrenheit() << endl;
cout << "In Kelvin: " << kTemp.getTemperatureInKelvin() << endl;
cout << endl;
Fahrenheit fTemp2(32);
fTemp2.printTemperature();
cout << "In Celsius: " << fTemp2.getTemperatureInCelsius() << endl;
cout << "In Fahrenheit: " << fTemp2.getTemperatureInFahrenheit() << endl;
cout << "In Kelvin: " << fTemp2.getTemperatureInKelvin() << endl;
cout << endl;
Celsius cTemp2(100);
cTemp.printTemperature();
cout << "In Celsius: " << cTemp.getTemperatureInCelsius() << endl;
cout << "In Fahrenheit: " << cTemp.getTemperatureInFahrenheit() << endl;
cout << "In Kelvin: " << cTemp.getTemperatureInKelvin() << endl;
cout << endl;
Kelvin kTemp2(200);
kTemp.printTemperature();
cout << "In Celsius: " << kTemp.getTemperatureInCelsius() << endl;
cout << "In Fahrenheit: " << kTemp.getTemperatureInFahrenheit() << endl;
cout << "In Kelvin: " << kTemp.getTemperatureInKelvin() << endl;
cout << endl;
return 0;
}
Kelvin.h file:
#include "Temperature.h"
#ifndef KELVIN_H
#define KELVIN_H
class Kelvin : public Temperature {
public:
Kelvin(double temperature) : Temperature(temperature){};
void printTemperature() const;
// Conversions
double getTemperatureInCelsius() const;
double getTemperatureInFahrenheit() const;
double getTemperatureInKelvin() const;
};
Kelvin.cpp file:
#include "Kelvin.h"
#include
using namespace std;
void Kelvin::printTemperature() const {
cout << getTemperature() << " Kelvin" << endl;
}
double Kelvin::getTemperatureInCelsius() const { return getTemperature() - 273.15; }
double Kelvin::getTemperatureInFahrenheit() const {
return (getTemperatureInCelsius() * 9.0 / 5) + 32;
}
double Kelvin::getTemperatureInKelvin() const { return getTemperature(); }
Create Fahrenheit.h, fahrenheit.cpp, celsius.h, and celsius.cpp files to complete the code
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
