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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2011, 18:36   #11
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от Variag Посмотреть сообщение
Да это то понятно. Но их даже разное число в разных классах. Ну, например, классу A нужно уметь читать данные из порта, соответственно нужна функция вида:
void ReadPort(int port)
а классу B - выводить в файл, соответственно нужна функция
void WriteFile(const char* filename)
Дилемма...
Вообще-то, это плохая идея - открыто наследовать базовый класс и не использовать его интерфейс. В этом случае вам надо наследовать реализацию базового класса, а не его интерфейс. А для этого либо делайте закрытое наследование, либо этот класс base делайте членом классов A и B.
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Старый 17.10.2011, 18:43   #12
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Обычно самая простая реализация и является самой верной. Из вашего примера сдедует, что лучше всего сделать пару глобальных функций, которые принимают в качестве аргумента базовый класс.
Одна функция пишет в файл данные базового класса, а другая читает из порта.
Если что не понятно, то читайте Страуструпа там всё хорошо объяснено в каких случаях, что лучше использовать.
An1ka вне форума Ответить с цитированием
Старый 18.10.2011, 11:26   #13
Variag
 
Регистрация: 05.10.2011
Сообщений: 7
По умолчанию

Цитата:
Обычно самая простая реализация и является самой верной. Из вашего примера сдедует, что лучше всего сделать пару глобальных функций, которые принимают в качестве аргумента базовый класс.
Одна функция пишет в файл данные базового класса, а другая читает из порта.
Если что не понятно, то читайте Страуструпа там всё хорошо объяснено в каких случаях, что лучше использовать.
Да я не спорю. Всю мою программу можно написать вообще не используя классы. Только просто хотелось бы, в связи с тем что сроки у меня не горят, совместить приятное с полезным, и, в большей степени для себя, поглубже погрузиться в мощь С++.

Цитата:
Вообще-то, это плохая идея - открыто наследовать базовый класс и не использовать его интерфейс. В этом случае вам надо наследовать реализацию базового класса, а не его интерфейс. А для этого либо делайте закрытое наследование, либо этот класс base делайте членом классов A и B.
Проблема в том что интерфейс базового класса у меня тоже используется. А так же, в плюс к интерфейсу базового класса нужно использовать еще и интерфейс унаследованных классов, которые, к сожалению разнятся.
Но на счет закрытого наследования или перемещения base в объекты A и B я уже тоже думал. Видимо, так и сделаю и навешу делегирование полномочий.

Еще раз спасибо всем за помощь.
Variag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно дописать программу, примерно 90% сделано, осталось чуть чуть Xerxes Фриланс 2 31.01.2011 23:27
График функции на паскале, чуть-чуть поправить momentow Помощь студентам 1 28.12.2010 01:28
программа часы,надо чуть-чуть переделать RadioDream Помощь студентам 1 21.10.2010 19:29
нашел поиском нужный макрос, чуть чуть бы доработать zander Microsoft Office Excel 3 30.09.2009 12:19