Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 4th, 2012  |  syntax: C++  |  size: 1.60 KB  |  hits: 36  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. class Game
  6.   {
  7.   public:
  8.     virtual void echo(void) = 0;
  9.     virtual void setCost(double) = 0;
  10.     virtual void setName(char * string) = 0;
  11.   protected:
  12.     double _cost;
  13.     char * _name;
  14.   };
  15. class AOE : public Game
  16.   {
  17.   public:
  18.     AOE(void)
  19.       {
  20.       _name = "Age of Empires";
  21.       }
  22.     void echo(void);
  23.     void setCost(double);
  24.     void setName(char *);
  25.   };
  26. void AOE::echo(void)
  27.   {
  28.   std::cout << "Game name: " << _name << std::endl;
  29.   std::cout << "Game cost: " << _cost << std::endl;
  30.   }
  31. void AOE::setCost(double cost)
  32.   { _cost = cost; }
  33. void AOE::setName(char * name)
  34.   { _name = name; }
  35. class AOM : public Game
  36.   {
  37.   public:
  38.     AOM(void)
  39.       {
  40.       _name = "Age of Mythology";
  41.       }
  42.     void echo(void);
  43.     void setCost(double);
  44.     void setName(char *);
  45.   };
  46. void AOM::echo(void)
  47.   {
  48.   std::cout << "Game name: " << _name << std::endl;
  49.   std::cout << "Game cost: " << _cost << std::endl;
  50.   }
  51. void AOM::setCost(double cost)
  52.   { _cost = cost; }
  53. void AOM::setName(char * name)
  54.   { _name = name; }
  55.  
  56. int main()
  57.   {
  58.   vector<Game *> EnsembleGames;
  59.   // separator
  60.   EnsembleGames.push_back(new AOM);
  61.   EnsembleGames[0]->setCost(14.99);
  62.   EnsembleGames[0]->echo();
  63.   // separator
  64.   EnsembleGames.push_back(new AOE);
  65.   EnsembleGames[1]->setCost(11.99);
  66.   EnsembleGames[1]->echo();
  67.   // separator
  68.   for (unsigned int i = 0; i < EnsembleGames.size(); i++)
  69.     {
  70.     delete[] EnsembleGames[i];
  71.     EnsembleGames[i] = NULL;
  72.     }
  73.   // separator
  74.   system("pause");
  75.   return(EXIT_SUCCESS);
  76.   }