home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / source / chapter08 / private_critter.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2004-04-11  |  1.1 KB  |  52 lines

  1. //Private Critter
  2. //Demonstrates setting member access levels
  3.  
  4. #include <iostream>
  5.  
  6. using namespace std;
  7.  
  8. class Critter
  9. {
  10. public:            // begin public section
  11.     Critter(int hunger = 0);
  12.     int GetHunger() const; 
  13.     void SetHunger(int hunger);
  14.     
  15. private:           // begin private section
  16.     int m_Hunger;
  17. };
  18.  
  19. Critter::Critter(int hunger): m_Hunger(hunger)
  20. {
  21.     cout << "A new critter has been born!" << endl;
  22. }
  23.  
  24. int Critter::GetHunger() const
  25. {
  26.     return m_Hunger;
  27. }
  28.  
  29. void Critter::SetHunger(int hunger)
  30. {
  31.     if (hunger < 0)
  32.         cout << "You can't set a critter's hunger to a negative number.\n\n";
  33.     else
  34.         m_Hunger = hunger;
  35. }
  36.  
  37. int main()
  38. {
  39.     Critter crit(5);  
  40.     //cout << crit.m_Hunger; -- illegal, m_Hunger is private!
  41.     cout << "Calling GetHunger(): " << crit.GetHunger() << "\n\n";
  42.    
  43.     cout << "Calling SetHunger() with -1.\n";
  44.     crit.SetHunger(-1);
  45.     
  46.     cout << "Calling SetHunger() with 9.\n";    
  47.     crit.SetHunger(9);
  48.     cout << "Calling GetHunger(): " << crit.GetHunger() << "\n\n";
  49.     
  50.     return 0;
  51. }
  52.