baksatibi

Untitled

Dec 15th, 2012
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.87 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Tick
  6. {
  7. private:
  8.     static Tick instance;
  9.  
  10.     int tick;
  11. public:
  12.     static const Tick& GetInstance()
  13.     {
  14.         return instance;
  15.     }
  16.  
  17.     static void Update()
  18.     {
  19.         instance.SetTick(instance.GetTick()+1); //tudom kicsit erőltetett a példa, már csak azért is, mert az Update eléri az instance private attribútumait is
  20.     }
  21.  
  22.     Tick()
  23.     {
  24.         tick=0;
  25.     }
  26.  
  27.     const int GetTick() const
  28.     {
  29.         return tick;
  30.     }
  31.  
  32.     void SetTick(const int t)
  33.     {
  34.         if(t>tick)
  35.         {
  36.             tick=t;
  37.         }
  38.     }
  39. };
  40.  
  41. Tick Tick::instance;
  42.  
  43. int main()
  44. {
  45.     const Tick& tick=Tick::GetInstance();
  46.     cout << tick.GetTick() << endl; //0
  47.  
  48.     tick.Update();
  49.     cout << tick.GetTick() << endl; //1
  50.  
  51.     tick.SetTick(10);   //Error 1   error C2662: 'Tick::SetTick' : cannot convert 'this' pointer from 'const Tick' to 'Tick &'
  52.     cout << tick.GetTick() << endl; //1
  53.  
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment