Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

Наследники абстрактных классов   Найти похожие ветки 

 
SergP ©   (2015-02-28 14:31) [0]

Обязательно ли в наследнике абстрактного класса реализовывать все методы, объявленные в родительском классе как абстрактные, если планируется создание объектов - экземпляров этого класса?
Или достаточно реализовать только необходимые методы?


 
junglecat ©   (2015-02-28 14:33) [1]

обязательно


 
Rouse_ ©   (2015-02-28 14:35) [2]

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


 
SergP ©   (2015-02-28 15:31) [3]


> Rouse_ ©   (28.02.15 14:35) [2]
>
> Не обязательно, но будут ворнинги.


Т.е. ворнинги возможны только в случаях попытки вызова нереализованных методов? Но такого не планируется...

А насчет архитектуры - цель простая, а архитектура мутноватая, пока это самое оптимальное что пришло в голову...
Наследников абстрактного класса планируется довольно много, и абстрактных методов многовато. И вот интересуюсь на начальном этапе дабы избежать большого кол-ва лишней и ненужной писанины.


 
кгшзх ©   (2015-02-28 16:07) [4]

Т.е. ворнинги возможны только в случаях попытки вызова нереализованных методов?

ЕАбстрактЕррор на рантайме тебе будет, а не ворнинг на компиляции.


 
Rouse_ ©   (2015-02-28 16:14) [5]


> Т.е. ворнинги возможны только в случаях попытки вызова нереализованных
> методов? Но такого не планируется...

Нет, в рантайме ты получишь исключение.
Ворнинги будут только на этапе компиляции.


> Наследников абстрактного класса планируется довольно много,
>  и абстрактных методов многовато.

Здесь вот уже становится интересно.
Просто для справки - абстрактный класс есть суть базового алгоритма от которого плодятся наследники оного, развивая суть алгоритмической задачи.
Если ты придумал класс с двумя абстрактными методами и в наследнике перекрыл только один из них, это не страшно. Технически (при такой постановке задачи) ты пишешь еще один наследник, перекрывающий второй абстрактный вызов и вуаля - используем его.
Но: если ты начнешь использовать в своем ПО только первый наследник (с неперекрытым вызовом) - хвала тебе и почет, именно о таких случаях пишут в различных юморных колонках: "как еще можно выстрелить себе в ногу при помощи Delphi"


 
DVM ©   (2015-02-28 18:37) [6]


> SergP ©   (28.02.15 15:31) [3]


> А насчет архитектуры - цель простая, а архитектура мутноватая,
>  пока это самое оптимальное что пришло в голову...
> Наследников абстрактного класса планируется довольно много,
>  и абстрактных методов многовато. И вот интересуюсь на начальном
> этапе дабы избежать большого кол-ва лишней и ненужной писанины.
>
>
>

Может быть интерфейсы помогут навести некоторый порядок?


 
Ega23 ©   (2015-02-28 23:06) [7]

Удалено модератором


 
кгшзх ©   (2015-02-28 23:18) [8]

зачем нужна директива abstract, если уже есть virtual?

да как это зачем?
написав это колдунство в декларации функции экномитсо:
- целых три нажатия клавиш ctrl+shift + c
- которые бы создали аш целых две строчки с пустой реализацией функции.

а если в масштабах всей страны?
гигаватты же экономятсо


 
имя   (2015-02-28 23:39) [9]

Удалено модератором


 
имя   (2015-02-28 23:41) [10]

Удалено модератором


 
имя   (2015-02-28 23:42) [11]

Удалено модератором


 
имя   (2015-02-28 23:45) [12]

Удалено модератором


 
Rouse_ ©   (2015-02-28 23:47) [13]

Скажем... Для заполнения 4 байт в vmt ;)



Страницы: 1 вся ветка

Текущий архив: 2017.01.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
8-1239693170
Miklek
2009-04-14 11:12
2017.01.15
Можно ли считывать часть большого BMP файла не считывая весь?


4-1280080992
korbin dalas
2010-07-25 22:03
2017.01.15
Как узнать размер чужого окна, изменить его а потом восстановить?


2-1418843283
AlexeyTG
2014-12-17 22:08
2017.01.15
Запуск двух программ с ожиданием завершения


15-1451394616
Kerk
2015-12-29 16:10
2017.01.15
Сувениры


15-1454880601
Юрий
2016-02-08 00:30
2017.01.15
С днем рождения ! 8 февраля 2016 понедельник