C++ Classes

Why classes?

reuse, information hiding, minimize test, robust

accountability, refresh/update flexibility, central control

structure of class

public, private

data member, function member

static

code organization - 3 file structure

invoke object

compile time, run time (new / delete)

---------------------

multiple constructors with default arguments

copy constructor -- object memberwise assignment date2 = date1

destructor, when are they called (exercise example)

----------------

constant object, const members

-------------------

object relationship

composition versus inheritance

has-a, is-a

new and delete

static member

friend (?) shall we even talk about this?

abstract data types

-----------------------------------

simplest Time.h

class Time

{

public:

   void printTime();

   int hour;

   int minute;

   int second;

}; // end class Time

simplest Time.cpp

#include <iostream>

#include <iomanip>

using namespace std;

#include "Time.h" // include definition of class Time from Time.h

void Time::printTime()

{

   cout << "Time is " << setfill( '0' ) << setw( 2 ) << hour << ":"

      << setw( 2 ) << minute << ":" << setw( 2 ) << second<<endl;

}