ООП. Вопросы применения - страница 16

 
Yedelkin:

Что, совсем тяжёлые/некорректные вопросы?

Долгое время использовал первый способ ("по ссылке"), но вот мысль про описатели очень понравилась. Только не знаю, стоит ли из-за неё переписывать все классы. 

Первый способ будет работать быстрее. Доступ через "описатель" дольше.
 
mql5:
Первый способ будет работать быстрее. Доступ через "описатель" дольше.
Спасибо, очень выручили.
 

Подскажите,

если у класса-родителя имеется 15 методов, а класс-потомок содержит один собственный метод и использует только три метода, унаследованных  от класса-родителя, то как будет выделяться память для такого класса-потомка: исходя из необходимости выделения памяти под 16 методов, или же исходя только из 4 фактически используемых методов?

Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
  • www.mql5.com
Основы языка / Переменные / Создание и уничтожение объектов - Документация по MQL5
 
Yedelkin:

Подскажите,

Не тем голову забиваете )
 
Yedelkin:

Подскажите,

если у класса-родителя имеется 15 методов, а класс-потомок содержит один собственный метод и использует только три метода, унаследованных  от класса-родителя, то как будет выделяться память для такого класса-потомка: исходя из необходимости выделения памяти под 16 методов, или же исходя только из 4 фактически используемых методов?

  

Память у объекта выделяется не под методы, а под данные. Все методы (то есть функции) хранятся в единственном экземпляре в исполняемом коде
 
stringo:
Память у объекта выделяется не под методы, а под данные. Все методы (то есть функции) хранятся в единственном экземпляре в исполняемом коде
Кажется, понял. Если один и тот же метод из класса-родителя используется в 10 различных классах-потомках, то в исполняемом коде он всё равно будет храниться в единственном экземпляре.
 

Поиск не работает. Возможно, повторюсь, но вопрос такой: может ли объект класса уничтожить сам себя? Т.е. сначала в объекте класса получаем ссылку объекта на самого себя при помощи зарезервированного слова this, затем применяем к соответствующему описателю (указателю) объекта оператор delete.

Что-то типа:

pointer=GetPointer(this);
delete pointer;

 Или же лучше/предпочтительнее удалять объект  "внешним", а не "внутренним" способом?

 
GetPointer выдает указатель неудаляемого типа. Объект сам себя удалить не может. И это пгавильно :)
 
Yedelkin:

........: может ли объект класса уничтожить сам себя? Т.е. сначала в объекте класса получаем ссылку объекта на самого себя при помощи зарезервированного слова this, затем применяем к соответствующему описателю (указателю) объекта оператор delete.

Суицидальные склонности - надёжный признак рассмотрения ситуации в слишком узком контексте.  :)

У меня встречный вопрос :  откуда ты всё это хозяйство вызывать-то будешь?  Напиши более практичный пример, чтоб стало видно поток выполнения в программе. Как ты будешь адресоваться к объекту?

Поясню. Если объект статический (глобального уровня) или автоматический (в стеке), то уделять его не нужно. Исполняющая система сама его искоренит, когда потребуется.

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

Других вариантов нет.

 
MetaDriver:

Суицидальные склонности - надёжный признак рассмотрения ситуации в слишком узком контексте.  :)

...
Научишь так маты излагать? :о)
Причина обращения: