|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.05.2012, 17:18 | #21 |
Форумчанин
Регистрация: 26.03.2012
Сообщений: 665
|
Да процедура бог с ней... вопрос был про архитектуру, логику.
Кто и как будет создавать объект логер, дергатьего процедуры.. |
14.05.2012, 17:42 | #22 |
Регистрация: 12.05.2012
Сообщений: 9
|
Класс TLogger подразумевался в качестве шаблона. Хотя компилятор и позволяет создать объект на его основе, но задумывался он как полностью абстрактный, без реализации и без создания объектов этого типа. Он должен был определить все те действия, которые обязательно должны были быть реализованы в потомках. Ну шаблон, одним словом.
И хотя вроде как с 7 версии Delphi можно объявить класс вот так: Код:
Последний раз редактировалось mongolores; 14.05.2012 в 17:53. |
14.05.2012, 18:01 | #23 |
Форумчанин
Регистрация: 26.03.2012
Сообщений: 665
|
делфи и не запрещал создавать объекты абстрактного класса.
но вопрос не в том... Вы для чего абстрактым хотели делать? Какую цель преследовали? Этож не просто, утром проснулся с бодуна, а не сделать ли мне класс абстрактным... И про шаблон с процедурами больше не надо рассказывать.. |
14.05.2012, 18:15 | #24 | |
Регистрация: 12.05.2012
Сообщений: 9
|
Хм, уже даже не знаю что ответить. А для чего вообще нужны абстрактные классы? Я так понимаю, чтобы описать обязательные возможности для потомков. Ну чтобы они как минимум реализовали то, что объявлено в абстрактном классе. Собственно и все намерения. Или вы видите в абстрактных классах что-то другое?
Цитата:
|
|
14.05.2012, 18:26 | #25 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
подумайте, а может вам стоит внести чтото вроде имя события->описание? соответственно оно будет легко хранится как в xml, так и в обычном тексте. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
14.05.2012, 18:41 | #26 |
Регистрация: 12.05.2012
Сообщений: 9
|
Я внимательно пытаюсь вникнуть в каждое слово. Не спора ради, а для понимания сути отвечу, что под намерениями я подразумеваю то, что должны сделать потомки (например, записать в файл). Поэтому в чисто абстрактном классе по-идее и содержатся только объявления методов (и никаких полей класса!). Но абстрактный класс же совсем не должно интересовать как его намерение, точнее даже сказать требование, будет реализовано в потомке. Но ключевым здесь судя по всему является сигнатура метода в базовом классе, т.е. он говорит потомку не только что он обязан сделать, но и при помощи чего.
И, видя, как несколько человек дают понять, что мой замысел неверен, нет повода вам не доверять. Наоборот, я получил отличный стимул выучить этот вопрос досконально. Последний раз редактировалось mongolores; 14.05.2012 в 18:46. |
14.05.2012, 18:50 | #27 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в вашем случае метод определяет как класс узнает инфу что должен записать.
можно вообще создать обьект который будет в себе инфу по событию передавать. а как его пишет уже решать реализации+реализацию то можно настраивать. у вас неверное абстрагирование. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
14.05.2012, 19:12 | #28 |
Форумчанин
Регистрация: 26.03.2012
Сообщений: 665
|
А для чего делали общего предка-логера и к тому-же добавили туда virtual; abstract;?
Сделайте несколько классов, с предком тобжект, распишите в каждом свою реализацию и все тип-топ (и работы меньше и заморочек). |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перегрузка виртуальных функций при полиморфизме | Стремящийся | Общие вопросы C/C++ | 2 | 06.05.2012 10:23 |
снова об виртуальных машинах. | Пепел Феникса | Общие вопросы по программированию, компьютерный форум | 12 | 25.08.2011 23:35 |
перегрузка виртуальных функций | tiger() | Visual C++ | 2 | 04.05.2011 07:35 |
Конфликт виртуальных серверов | ZvEr_HaCkEr | Свободное общение | 4 | 19.04.2011 18:37 |
Построение виртуальных миров | qqwer1984 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 28 | 19.07.2010 21:22 |