Programming Fundamentals/Object Examples C++

Objects

``` // This class converts temperature between Celsius and Fahrenheit.
// It may be used by assigning a value to either Celsius or Fahrenheit
// and then retrieving the other value, or by calling the ToCelsius or
// ToFahrenheit methods directly.
//
// References:
//     https://www.mathsisfun.com/temperature-conversion.html
//     https://en.wikibooks.org/wiki/C%2B%2B_Programming

#include <iostream>

using namespace std;

class Temperature {
public:
double getCelsius(void);
void setCelsius(double value);
double getFahrenheit(void);
void setFahrenheit(double value);
double toCelsius(double fahrenheit);
double toFahrenheit(double celsius);

private:
double celsius;
double fahrenheit;
};

double Temperature::getCelsius(void) {
return celsius;
}

void Temperature::setCelsius(double value) {
celsius = value;
fahrenheit = toFahrenheit(celsius);
}

double Temperature::getFahrenheit(void) {
return fahrenheit;
}

void Temperature::setFahrenheit(double value) {
fahrenheit = value;
celsius = toCelsius(fahrenheit);
}

double Temperature::toCelsius(double fahrenheit) {
return (fahrenheit - 32) * 5 / 9;
}

double Temperature::toFahrenheit(double celsius) {
return celsius * 9 / 5 + 32;
}

// This program creates instances of the Temperature class to convert Celsius
// and Fahrenheit temperatures.
//
// References:
//     https://www.mathsisfun.com/temperature-conversion.html
//     https://en.wikibooks.org/wiki/C%2B%2B_Programming

int main() {
Temperature temp1;
temp1.setCelsius(100.0);
cout << "temp1.celsius = " << temp1.getCelsius() << endl;
cout << "temp1.fahrenheit = " << temp1.getFahrenheit() << endl;
cout << endl;

Temperature temp2;
temp2.setFahrenheit(100.0);
cout << "temp2.fahrenheit = " << temp2.getFahrenheit() << endl;
cout << "temp2.celsius = " << temp2.getCelsius() << endl;
}
```

Output

```temp1.celsius = 100
temp1.fahrenheit = 212

temp2.fahrenheit = 100
temp2.celsius = 37.7778
```