![]() |
|
Модераторы: bsa |
![]()
|
|
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: нет Всего: 9 |
Есть, допустим такой интерфейс:
interface I_Integer { int GetInt(); void SetInt }; Пример надуман, привожу его чтобы не описывать свой здоровый интерфейс ) Вопросы: 1. Обазательно ли методы интерфейса объявлять virtual-льными или они по дефолту уже виртуальные ? 2. В классе порожденного от этого интерфейса методы уже по дефолту будут виртуальными или их явно надо задавать как virtual ? 3. Если есть есть класс, который порожден от этого интерфейса и есть функция написанная в процедурном стиле, но ! Создающая объект этого класса в указатель на этот интерфейс, т.е. это своего рода фабрика , то как убивать этот объект ? bool CreateObj(I_Integer * int_obj); /* много кода дальше и : */ I_Integer * obj_int; if (!CreateObj(&obj_int) ) std::cout << "Error\n"; Вопрос появился по тому что от интерфейса может быть порождено несколько классов и потому может быть аналогичных CreateObj несколько вариантов ! Потому будет ли достаточно : delete obj_int; obj_int = 0; ? |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
EvilsInterrupt, камрад в С/С++ нет интерфейсов. Есть аналог - абстрактный или полиморфный класс. А то что ты делаешь, как я понимаю, тянет с собой .NET. К С/С++ это имеет очень отдаленное отношение.
|
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: нет Всего: 9 |
все, по этой теме вроде исчерпаны, Lazin проснулся и просвятил меня по аське. )))
Решение: 1. заместо ключевого interface поставил class 2. все методы сделал чистыми вирт. ф-циями 3. сделал также чистоой виртуальной ф-цией и ДЕСТРУКТОР ! 4. сделал реализацию этого деструктора !!! - это особенно важно для меня |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
совершенно бесполезное действие |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
не совсем.. щас до компиляции дойдет и компилятор заартачится (чувствую что тело он не определил) - будет у автора дополнительный опыт Это сообщение отредактировал(а) mes - 30.3.2009, 10:56 |
|||
|
||||
| Andrey44 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
a
-------------------- ????? ??, ??????? ?????. |
||||
|
|||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
Andrey44, вот если бы он так написал - тогда другое дело.
Смысла честно говоря я в этом не вижу. Букв и то больше писать. Кстати помню один чел так заменил {, } на begin и end. |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
А interface просто для удобства. Читаешь и сразу видишь, ага interface - значит это интерфейс Конечно смысла нет если простую структуру обзывать interface -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
А зачем? Это довольно редко, когда бывает действительно нужно. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |