Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2013, 15:14   #11
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Что такое "универсальный интерфейс"?
waleri вне форума Ответить с цитированием
Старый 01.07.2013, 16:18   #12
m_nuhop
Новичок
Джуниор
 
Регистрация: 30.06.2013
Сообщений: 8
По умолчанию

Под универсальным интерфейсом я понимаю класс, имеющий в идеале доступ ко всем классам Derived1, .. Derived15 с нарушенной инкапсуляцией.
m_nuhop вне форума Ответить с цитированием
Старый 01.07.2013, 16:56   #13
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Напишите интерфейс, в котором есть все возможные методы из всех классов. Каждый класс реализует только то, что ему нужно.
Ума не приложу зачем это нужно...
waleri вне форума Ответить с цитированием
Старый 01.07.2013, 17:16   #14
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
что такое "объектный пул прототипов" ?
http://ru.wikipedia.org/wiki/%D0%9E%...BF%D1%83%D0%BB

http://ru.wikipedia.org/wiki/%D0%9F%...D0%B8%D1%8F%29

Но я ошибся, ТС нужно что-то другое, еще более невероятное )
Я думал ему надо только сконструировать эти много объектов, но он как-то странно хочет с ними работать

Цитата:
Напишите интерфейс, в котором есть все возможные методы из всех классов. Каждый класс реализует только то, что ему нужно.
дак а работать с этим как? - Вы предлагаете наследовать интерфейс, реализовывать не все его методы. Зачем тогда интерфейс? (как я узнаю без dynamic_cast реализует объект какой-то метод или нет? Но что это будет за dynamic_cast если у ТС 15 классов? )

Я думаю ТС что-то делает не так )
rrrFer вне форума Ответить с цитированием
Старый 01.07.2013, 17:21   #15
m_nuhop
Новичок
Джуниор
 
Регистрация: 30.06.2013
Сообщений: 8
По умолчанию

Цитата:
Напишите интерфейс, в котором есть все возможные методы из всех классов. Каждый класс реализует только то, что ему нужно.
Это самое простое решение, но от него увеличивается размер кода при добавлении новых классов Derived16, ..17 и т.д. Требуется более элегантное решение. Что-то необходимо сделать с указателями на динамические библиотки.
m_nuhop вне форума Ответить с цитированием
Старый 01.07.2013, 17:31   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от m_nuhop Посмотреть сообщение
Это самое простое решение, но от него увеличивается размер кода при добавлении новых классов Derived16, ..17 и т.д. Требуется более элегантное решение. Что-то необходимо сделать с указателями на динамические библиотки.
динамические библиотеки тут вообще не причем.

по моему вы творите чтото странное, в вашем случае разве что реализовывать Query-интерфейс.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.07.2013, 17:36   #17
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от m_nuhop Посмотреть сообщение
Это самое простое решение, но от него увеличивается размер кода при добавлении новых классов Derived16, ..17 и т.д.
Нет, размер увеличивается только на реально добавленные методы.

Цитата:
Сообщение от m_nuhop Посмотреть сообщение
Требуется более элегантное решение.
Для этого надо знать, что именно требуется...
waleri вне форума Ответить с цитированием
Старый 01.07.2013, 19:31   #18
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Цитата:
Сообщение от m_nuhop Посмотреть сообщение
Под универсальным интерфейсом я понимаю класс, имеющий в идеале доступ ко всем классам Derived1, .. Derived15 с нарушенной инкапсуляцией.
Это уже не ООП...
Igor95 вне форума Ответить с цитированием
Старый 01.07.2013, 19:40   #19
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от m_nuhop Посмотреть сообщение
Отсюда, или есть хитрый способ использовать указатели на классы Class1, .. Class15 внутри класса Intrfc или же необходимо изменить архитектуру классов. Как это можно сделать?
Каким образом вы собираетесь использовать Class1, .. Class15 внутри класса Intrfc?

Код:
void Intrfc::Intrfc_func()
{
  ptrBase->func();            // ok
  ptrBase->get_a();          // ok

  // Здесь необходимы данные от классов Class1, .. Class15
  // Замените комментарий выдержкой кода, отражающего 
  // Дизайн использования
  ... 
}
_Bers вне форума Ответить с цитированием
Старый 01.07.2013, 20:29   #20
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Видимо, автор подразумевает композицию...
Igor95 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить по ссылке на интерфейс указатель на класс в котором он реализован LISTAT Общие вопросы Delphi 9 24.01.2013 12:06
Cоздать класс жидкость. определить конструкторы деструкторы и функцию печати. создать публик производный класс. (С++) Динар Габбасов Помощь студентам 0 28.05.2012 18:44
Добавить класс в проект2,похожий на класс из проекта1!оба проекта есть! xeops C# (си шарп) 0 15.05.2012 20:31
Класс запускает поток, который заполняет этот класс. Обмен класс <=> поток. Человек_Борща Общие вопросы Delphi 8 27.02.2012 23:24
разработать интерфейс для дисков - интерфейс програмный Notformal Помощь студентам 0 01.11.2011 22:52