// ========================================================================== // $Id: house_pro.cpp,v 1.3 2008/10/15 21:23:37 jlang Exp $ // CSI2372 example Code for lecture 6 // ========================================================================== // (C)opyright: // // Jochen Lang // SITE, University of Ottawa // 800 King Edward Ave. // Ottawa, On., K1N 6N5 // Canada. // http://www.site.uottawa.ca // // Creator: jlang (Jochen Lang) // Email: jlang@site.uottawa.ca // ========================================================================== // $Log: house_pro.cpp,v $ // Revision 1.3 2008/10/15 21:23:37 jlang // Reverting to 1.1 // // Revision 1.1 2006/10/05 01:56:46 jlang // Added material for lecture 6 // // // ========================================================================== #include using namespace std; class Building { double d_sqft; int d_noRooms; public: Building( double _sqft = 1000.0, int _noRooms = 3 ) : d_sqft( _sqft ), d_noRooms( _noRooms ){} int getNoRooms() { return d_noRooms; } protected: void setSqft( double _sqft ) { d_sqft = _sqft; } }; class House : protected Building { int d_noOccu; public: House( int _noOccu = 2 ) :d_noOccu( _noOccu ) {} int getNoOccupants() { return d_noOccu; }; int getNoRooms(); void setSqft( double _sqft ); }; int House::getNoRooms(){ // Kitchen and Bathroom do not count return Building::getNoRooms() - 2; } void House::setSqft( double _sqft ) { // max 1500 per person if ( _sqft/d_noOccu > 1500.0 ) { _sqft = 1500.0 * d_noOccu; } Building::setSqft( _sqft ); } int main() { House h; cout << h.getNoOccupants() << endl << h.getNoRooms() << endl; h.setSqft( 1200.0 ); }