![]() |
|
Модераторы: Daevaorn |
![]()
|
|
||
|
|
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Красота требует жертв
В итоге та же самая перегрузка...правда с потерей безопасности Добавлено @ 16:28 Не знаю, может это у меня личный неприязнь к void * ..такой личный неприязнь что кушать не могу |
|||
|
||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Получается тоже самое что простая перегрузка.
Вообщем все приимущества С++ нахер. Используйте поля типа господа... Конечно еслиб я сам делал все классы, я бы сделал общие методы... Но увы =)))) Не на самом деле да void лучше не юзать... Но в этом случае, кажется другго выхода нет. Помоему твой метод небезопасней моего. Это сообщение отредактировал(а) Neitron - 22.12.2005, 16:40 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Метод с template -ом да...почти тоже самое..просто используя enum ты предотвратишь вызов функции хотя бы таким способом...
Добавлено @ 16:49 Т.е. тип который не существует ты просто не сможешь передать в качестве параметра...т.е. сможешь но надо для этого постараться...одной случайной ошибкой меньше..к тому же ObjType_EDIT читается гораздо лучше чем прост цифра 1... Добавлено @ 16:49 А в остальном в принципетоже самое |
||||
|
|||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Я знаю что нужно использовать enum....
Просто сейчас я переделываю этот метод... Когда я его делал впервые класс с этим методом, я тогда еще не знал о enum...С этим ты прав. Это сообщение отредактировал(а) Neitron - 22.12.2005, 16:54 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| Earnest |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
В чем проблема? Нет общих методов у разных компонент? Тогда можно вспомнить, что есть множественное наследование и сделать примесь. Ну и шаблоны, конечно:
Далее, для каждого типа контрола предполагаем использовать Traits со следующим интерфейсом:
это концепция, а не реальный класс, поэтому закомментировано, но можно сделать и шаблончик для наиболее частого случая, а остальное специализировать:
Вот теперь используем:
Для каждого нового контрола нужно написать/специализировать Traits, но делать это можно локально - там, где объявляется новый класс Object. ... А в твоем последнем примере, вместо типа, для которого еще нужно констант напридумывать, да еще и в общий хедер их поместить, лучше бы typeinfo использовать. -------------------- ... |
||||||||
|
|||||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |