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

Увеличение функциональности без использования наследования. Как? - C++

Восстановить пароль Регистрация
 
[progeR]
6 / 7 / 0
Регистрация: 20.08.2011
Сообщений: 590
01.01.2013, 11:07     Увеличение функциональности без использования наследования. Как? #1
Добрый день.
Можно ли как-нибудь еще увеличить функциональность своего класса без использования наследования?
Делаю свой класс А, в нем хочу реализовать несколько фич класса B. Сам я эти фичи написать не могу, т.к. не знаю, как они делаются, да и зачем изобретать велосипед. Ради каких-то нескольких функций наследовать класс B не хочу.
Что можете посоветовать? Может хитрости какие есть?

Знаю один вариантов. В своем классе создать объект класса B и через него использовать нужные функции. Круто, но это прокатит только с public членами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.01.2013, 11:07     Увеличение функциональности без использования наследования. Как?
Посмотрите здесь:

C++ Как считать строку scanf'ом при этом не переходя на новую строку, т.е. без использования Enter'а
C++ Как написать генератор чисел без использования стандартных функций?
C++ Как обойти массив без использования цикла
Продолжение цепочки наследования без дублей базовых классов C++
Как сделать замену слова в строке без использования функций библиотеки string? C++
Как найти медиану неотсортированного массива (без использования дополнительного массива) C++
Игровые движки пишут сначала на c++ без использования WinAPI объясните как? C++
C++ Подскажите как найти слово строке в котором больше 2 букв 'a', а затем вывести его?Без использования string

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байр
14 / 14 / 1
Регистрация: 09.12.2011
Сообщений: 64
01.01.2013, 11:58     Увеличение функциональности без использования наследования. Как? #2
Тоесть вы хотите "частично" унаследовать класс? Лично я никогда о таком не слышал. Концепция ООП - это когда любой наследник имеет полный функционал клааса предка, + свой собственный.
Цитата Сообщение от [progeR
Круто, но это прокатит только с public членами.
Смотря члены с каким идентификатором нужны. Если нужны ещё и Protected, то только наследование. А вот если private. то только friend классы. Так что от наследовния не уйти)
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
01.01.2013, 13:11     Увеличение функциональности без использования наследования. Как? #3
Одно из двух: или наследуешь всё, или делаешь сам. Можно наследовать не от самого класса, а от его предка. Несколько независимых классов могут случайно иметь общие свойства. Например, лошадь и электростанция одинаково имеют максимальную мощность не будучи потомками ни друг друга, ни какого либо другого класса. Город же и скала закономерно имеют общее свойство - географические координаты, так как оба - потомки общего предка - географического объекта. Катер и лошадь-скакун - тоже потомки общего предка - транспортного средства. Катер и электростанция - потомки общего предка - машины. Но лошадь и электростанция не лезут в общие рамки ни как, общий атрибут имеют.

Добавлено через 4 минуты
Цитата Сообщение от [progeR
;3939493]Знаю один вариантов. В своем классе создать объект класса B и через него использовать нужные функции.
Агрегировать что ли? А действительно ли экземпляр A включает в себя экземпляр B? Если это двигатель и газонокосилка, то такой подход оправдан, но если экземпляры класса B не могут быть частями экземпляров класса A то так делать нельзя. Например, нельзя агрегировать автомобиль в ракету.
Yandex
Объявления
01.01.2013, 13:11     Увеличение функциональности без использования наследования. Как?
Ответ Создать тему
Опции темы

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