fork download
  1. #include <iostream>
  2.  
  3. const int SAMSUNG = 1;
  4. const int BORING_STUFF_MAX = 100;
  5.  
  6. class AwesomeME;
  7.  
  8. class Me
  9. {
  10. public:
  11. void operator=(AwesomeME* me) { ame = me; }
  12. int getEmployer() { return employer; }
  13. void doBoringStuff() { if (BORING_STUFF_MAX < ++boringCtr) employer = SAMSUNG; }
  14. void launchCareer() { salary += 10000; };
  15. AwesomeME* getAwesomeME() { return ame; }
  16.  
  17. private:
  18. int employer = 0;
  19. int boringCtr = 0;
  20. int salary = 5000;
  21. AwesomeME* ame = nullptr;
  22. };
  23.  
  24. class AwesomeME : public Me
  25. {
  26. public:
  27. ~AwesomeME() { std::cout << "Happy end!\n"; }
  28. };
  29.  
  30. int main()
  31. {
  32. Me me;
  33. // --------------------------------------------------
  34. while (true)
  35. {
  36. if (me.getEmployer() != SAMSUNG) {
  37. me.doBoringStuff();
  38. }
  39. else {
  40. me = new AwesomeME();
  41. me.launchCareer();
  42. break;
  43. }
  44. }
  45. // --------------------------------------------------
  46. delete me.getAwesomeME();
  47. return 0;
  48. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
Happy end!