Tuesday, September 11, 2012

if (day_of_year % 256 == 0) Celebrate();

The code below has some contractions, please do not try to ... it.


class God
{
   void DoNothing ();

private:
   void CreateSomeWorld ();

   friend class Alien;
}



class Human : public God
{
   Human (const Human& mother, const Human& father);  // birth
   virtual ~Human (); // death

   virtual bool AreYouHappy () = 0;
   virtual void BeHappy (Stuff reason) = 0;

   virtual void WasteTime ()
   {
      DoNothing ();  // you know OOP, right? ;)
   }
}



class Programmer : public Human
{
   // many important things about beer, gadgets, junk food and stuff
}



class Sergey : public Programmer
{
   void MoveToCanada ();

   virtual void WasteTime ()
   {
      if (day_of_year % 256 == 0) 
         Celebrate ();
      else
         // TODO: should be call WorkHard (), fix in the next release
         Human::WasteTime ();  
   }    
}



.... somewhere in the big life loop ....

for (Human& item : all_people_heap)
{
   if (item.AreYouHappy ())
      item.WasteTime ();
   else
      item.BeHappy ();
}


Переводя вышеизложенное на обычный человеческий:
С Праздником, дорогие Программисты, Программеры и прочие сочувствующие!

10 comments:

  1. С праздником !!! Успехов и удач во всех делах!!!

    ReplyDelete
  2. От жеж фильтры. Дубль два.

    #include "God.h"
    #include "Human.h"
    #include "Programmer.h"
    #include "Sergey.h"

    God gd;
    Sergey Turlachev;

    void BigBang(void)
    {
    gd.DoNothing();

    Turlachev.MoveToCanada();
    Turlachev.BeHappy();

    }

    ReplyDelete
  3. Вот и Яблоко порадовало к празднику новым iPhone 5, на 20% тоньше, на 20% легче... Порадуюсь за фанатов.

    ReplyDelete
  4. Программер, хорош праздновать, уже 3 дня прошло :) Даёшь историю про США!

    ReplyDelete
    Replies
    1. Готова история. А поздравление то где? =)

      Delete
  5. а я прочитал твой пост только вчера ) с прошедшим не поздравил, извини :) ДОРОГОЙ ДРУГ, ПОЗДРАВЛЯЮ ТЕБЯ С ПРОФЕССИОНАЛЬНЫМ ПРАЗДНИКОМ! ТЫ САМЫЙ ВЕЛИКИЙ ПРОГРАММИСТ ЗАПАДНОГО ПОЛУШАРИЯ ПЛАНЕТЫ! БОЛЬШИХ УСПЕХОВ! УР-РАА!

    ReplyDelete
    Replies
    1. Вооот, другое дело, брат связист =)

      Delete
  6. У Human и Sergey все методы private, хе-хе. Так что не скомпилируется твой код. :) Наследование Human от God тоже готичное.

    Да, и где же реализация Turlachev::AreYouHappy ()? :)

    ReplyDelete
    Replies
    1. Ну так some contractions же, take it easy =) И так слишклм длинно получилось. Если совсем беспокоит, то грязный хак первой строчкой #define class struct ;)

      Delete