Форум программистов, компьютерный форум CyberForum.ru

Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? - C++

Восстановить пароль Регистрация
 
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
05.06.2011, 17:36     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? #1
Ну то есть базовый класс A, с полями, допустим, a, b, c, d. И я проектирую производный класс B и я железно знаю, что он будет использовать только поле a и b (c и d будет использовать другой производный класс C). Вот не знаю, правильно ли это. Ещё до реализации не дошло, вот думаю, может правильнее написать функции к классу A (вместо производных классов); и писать
C++
1
A.f ();
вместо
C++
1
B b;
Наверное, я могу сделать и то и другое, но хотелось бы сразу вставать на правильный путь. Это не С всё-таки. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 17:36     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это?
Посмотрите здесь:

Базовый класс и производный... C++
C++ базовый и производный класс, в базовом объявлена переменная "protected", она недоступна по имени в производном классе! template <class T> воду мутит!
Есть базовый и производный класс, в базовом определена функция, необходимо её объявить в производном! C++
Создать базовый класс Points и производный от него Line C++
C++ Производный класс не видит перегруженную операцию базового класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
05.06.2011, 18:08     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? #2
Цитата Сообщение от kravam Посмотреть сообщение
правильнее написать функции к классу A (вместо производных классов)
какая задача? наследование надо применять там где это логично.
Цитата Сообщение от kravam Посмотреть сообщение
я проектирую производный класс B и я железно знаю, что он будет использовать только поле a и b (c и d будет использовать другой производный класс C)
у класса B будут все поля класса А. Свободно пользоваться можно будет полями protected и public. Модификатор наследования полей сохраняется для следующих классов, производных уже от В(если class B : public A), но его можно ужесточить например
C++
1
2
private:
   using A::f();
тогда в классах производных от В уже нельзя будет в полной мере поюзать f
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
05.06.2011, 18:16  [ТС]     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? #3
Я это всё знаю. Я говорю, классу B не понадобятся поля c и d. Надо ли проектировать класс B или проще создать функцию f- метод класса А?
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
05.06.2011, 18:20     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? #4
ну ты сам смотри. Сложно что-то сказать на абстрактном примере
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
05.06.2011, 18:22  [ТС]     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? #5
Я думал, может какие рекомендации методические существуют.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
05.06.2011, 21:21     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? #6
Методическое указание тут одно: Use common sense. Я могу представить себе пару ситуаций, где дочерний класс использует не весь функционал родительского (на-гора -- очередь, наследуемая от дека, целое положительное число как дочерний класс "числа"), но в целом, конечно, это повод критично посмотреть на свое дерево классов.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
06.06.2011, 13:10     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? #7
Цитата Сообщение от kravam Посмотреть сообщение
Ну то есть базовый класс A, с полями, допустим, a, b, c, d. И я проектирую производный класс B и я железно знаю, что он будет использовать только поле a и b (c и d будет использовать другой производный класс C). Вот не знаю, правильно ли это.
Нет. Так сложно сказать конечно, но думаю имеет смысл оставить в A только a и b. B наследовать от A напрямую, а C через промежуточный класс с полями c и d. В общем, идея думаю понятена.
voral
345 / 325 / 46
Регистрация: 16.03.2008
Сообщений: 1,694
06.06.2011, 13:27     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? #8
Цитата Сообщение от kravam Посмотреть сообщение
Я думал, может какие рекомендации методические существуют.
Имхо. Надо смотреть, а нет ли класса Q, который использует другой набор из этих методов, использует ли эти методы сам базовый класс. Если использует только один производный класс - то надо спускать эти методы туда. Если используют несколько производных классов, но не все. Тут уже надо смотреть на задачу, возможно стоит реализовать промежуточный.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2011, 13:35     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это?
Еще ссылки по теме:

Указатели в базовом классе на базовый класс и производный класс C++
C++ Указатель на базовый класс и на производный
C++ Разработать производный от абстрактного класса Figure класс и класс, производный от производного

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
06.06.2011, 13:35     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? #9
kravam, самая простая рекомендация: если B является A - наследуй, нет - не наследуй. Нужно исходить не из внутреннего устройства, а из того что чем является.
Yandex
Объявления
06.06.2011, 13:35     Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это?
Ответ Создать тему
Опции темы

Текущее время: 07:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru