Скачать MetaTrader 5

Разговоры на завалинке о ООП

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Alexey Volchanskiy
24616
Alexey Volchanskiy  

Так как меня постоянно обвиняют, что соблазнил и бросил всех баб в Питере старше 18 и моложе 90 и начал маньячить уже и за пределами, а один из форумчан в мой ДР 23 декабря ваще истерил, как он меня ненавидит, решил завести общественно-полезную
и целомудренную ветку.

Да и сегодняшняя грызня, можно ли жить без вотки, баб и рок-н-ролла  ООП, заставила задуматься, а может плаксуны и правы, и жизнь не веселое приключение, а тяжкая ноша. Может, ООП реально придумано злобными репликтоидами при содействии предателя человечества  Бьерн Страуструпа?

---------------------

Начнем с вопроса коварного George Merts в сегодняшней веткаср*че, который решил перевести разговор с тонкой вдохновенной ругни на грубые скучные материи. Но вопрос как раз кстати. 

Кстати, мне не очень понятно, почему программисты, имеющие опыт - не стесняются задавать "глупые" вопросы типа "А как работает класс CObject из Стандартной Библиотеки", а новички - "стесняются"... 

-----------

Хладнокровно отвечаем на провокацию:

Имеющие опыт такие вопросы задавать не будут )))))))) Ибо это класс-родитель, который ничего не делает. Его задача - обеспечить единого родителя для всех потомков. А для чего? 

Рассмотрим класс, ибо он совсем маленький.  Как видно в нем есть 4 virtual функции, которые, как и положено в классе-родителе, ничего не делают. 

class CObject
  {
private:
   CObject          *m_prev;               // previous item of list
   CObject          *m_next;               // next item of list

public:
                     CObject(void): m_prev(NULL),m_next(NULL)            {                 }
                    ~CObject(void)                                       {                 }
   //--- methods to access protected data
   CObject          *Prev(void)                                    const { return(m_prev); }
   void              Prev(CObject *node)                                 { m_prev=node;    }
   CObject          *Next(void)                                    const { return(m_next); }
   void              Next(CObject *node)                                 { m_next=node;    }
   //--- methods for working with files
   virtual bool      Save(const int file_handle)                         { return(true);   }
   virtual bool      Load(const int file_handle)                         { return(true);   }
   //--- method of identifying the object
   virtual int       Type(void)                                    const { return(0);      }
   //--- method of comparing the objects
   virtual int       Compare(const CObject *node,const int mode=0) const { return(0);      }
  };
Maxim Dmitrievsky
21101
Maxim Dmitrievsky  

Увидел аватарку Алексея, думал начало будет опять про баб.. и не ошибся

остались еще какие-то фундаментальные люди и вещи на форуме

Vitaly Muzichenko
7648
Vitaly Muzichenko  

Разговоры о валенке с ООП )

Начнём?

Alexey Oreshkin
7695
Alexey Oreshkin  

ждём Петера Кноу или как там ник пишется.
затарился попкроном, жду срач :)

Vitaly Muzichenko
7648
Vitaly Muzichenko  
Alexey Oreshkin:

ждём Петера Кноу или как там ник пишется.
затарился попкроном, жду срач :)

Алексей, вы увидели слово "валенок" и оно у вас сразу с ассоциировалось с тем, кого ждёте в этой теме?

Artyom Trishkin
Модератор
90973
Artyom Trishkin  

Ну вот только без оскорблений личностных...


Vitaly Muzichenko
7648
Vitaly Muzichenko  
Artyom Trishkin:

Ну вот только без оскорблений личностных...

Хорошо, пока ещё никого не оскорбили, но на будущее учтём)

Alexey Volchanskiy
24616
Alexey Volchanskiy  

Далее, класс обеспечивает чтение и запись двух приватных полей (ниже вспомним,что это такое) m_prev и m_next.

   //--- methods to access protected data
   CObject          *Prev(void)                                    const { return(m_prev); }
   void              Prev(CObject *node)                                 { m_prev=node;    }
   CObject          *Next(void)                                    const { return(m_next); }
   void              Next(CObject *node)                                 { m_next=node;    }

ВО первых, для тех, кто забыл или не знал. Приватное поле, которое располагается после объявления секции private: не видна снаружи и служит исключительно для доступа внутри класса.

private:
   CObject          *m_prev;               // previous item of list
   CObject          *m_next;               // next item of list

Поля (так на жаргоне ООП называют переменные), лежащие в секции public: , то есть публичные, как видно из названия, видны снаружи. С секцией protected: разберемся позже.

Так вот, m_prev и m_next 

нужны для того, чтобы в дальнейшем создавать классы типа массивов по назначению, но работающие на других принципах. Углубляться тоже сейчас не будем. Картинки, таблицы пропускаем...ну вы помните.

ВСЕ!!! больше этот класс ничего не умеет. Естественно, есть конструктор  и деструктор.

Как вы, наверное, заметили, забывчивые Матаквоты не включили самое главное поле m_get_bablo. Ну ничо, и на старуху бывает проруха, при нужде унаследуемся от CObject и включим + поле m_get_many_many_big_bablo!

--------------------------------

Дисклеймересли коды, которые будут опубликованы в этой ветке мной, не заработают, значит их ...э-э-э писал кто-то другой

ну а если зажурчит, то конечно мое )) 


Alexey Volchanskiy
24616
Alexey Volchanskiy  
Maxim Dmitrievsky:

Увидел аватарку Алексея, думал начало будет опять про баб.. и не ошибся

остались еще какие-то фундаментальные люди и вещи на форуме


Максим, ты уже принял, что ли? Я же четко написал "решил завести общественно-полезную 

и целомудренную ветку."

Че вам всем бабы мерещатся)))

Aleksey Ivanov
421
Aleksey Ivanov  
Alexey Volchanskiy:

Так как меня постоянно обвиняют, что соблазнил и бросил всех баб в Питере старше 18 и моложе 90 и начал маньячить уже и за пределами

Да и сегодняшняя грызня, можно ли жить без вотки, баб и рок-н-ролла  ООП, заставила задуматься, а может плаксуны и правы, и жизнь не веселое приключение, а тяжкая ноша. Может, ООП реально придумано злобными репликтоидами при содействии предателя человечества  Бьерн Страуструпа?

Так Вы из Питера. Как там  физ-мат корпуса универа в деревне Темяшкино все еще стоят? Кстати репликтоиды, по Вашему, это кто - все мы, кто реплики на форумах вставляет или Вы так рептилоидов называете?   

Alexey Volchanskiy
24616
Alexey Volchanskiy  
Artyom Trishkin:

Ну вот только без оскорблений личностных...



Артем, просьба такая. К тебе и ко всем уважаемым модераторам. Шутки в нашем сообществе, в т.ч. и в мой адрес, я приветствую. Да и смотрю, пока отметилась только старая гвардия, мы друг друга знаем.

Но вот плаксунов гони прочь плз, а то брошу и уйду на другой форум. Планирую писать тут о серьезных вещах, но с некоторым юморком конечно. А плаксуны только разводят сырость и дестракшен.

-------------

ЗЫ, ушел на 20 мин, потом продолжу. О чем писать-то вообще, как думаете? У меня есть некоторые соображения, хочется ваши услышать