// File: temperature.h
// Header file for class Temperature.
// This class represents temperature values
// ----------------------------------------------------------------------
// Class: CS 210                     Instructor: Drs. Hwang & Roberts
// Assignment: In-class exercise for 4/2/07 & 4/3/07
// Programmer(s): <fill in your name (s)>

#ifndef TEMPERATURE_H_
#define TEMPERATURE_H_

#include <iostream>                    // istream, ostream
using namespace std;

class Temperature
{
   public:                             // The class operation prototypes
      // Constructors
      Temperature();
      Temperature(double initialDegrees, char initialScale);

      // Accessors
      double Degrees() const;
      char Scale() const;

      // Conversions
      Temperature Fahrenheit() const;
      Temperature Celsius() const;
      Temperature Kelvin() const;

      // Unary operator - a member function
      Temperature operator-() const;

      // Friend functions
      // Comparison
      friend bool operator== (const Temperature & leftOperand, 
                              const Temperature & rightOperand);
      friend bool operator< (const Temperature & leftOperand, 
                             const Temperature & rightOperand);

      // Binary operators
      friend Temperature operator+(const Temperature & leftOperand,
                                   double rightOperand);

      // I/O
      friend ostream & operator<< (ostream & outStream, const Temperature & theTemp);
      friend istream & operator>> (istream & inStream, Temperature & theTemp);

   private:                           // The class attributes
      double myDegrees;
      char myScale;                   // 'F', 'C' or 'K'
};

#endif  // TEMPERATURE_H_
