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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
[progeR]
30 / 8 / 0
Регистрация: 20.08.2011
Сообщений: 605
#1

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

01.01.2013, 11:07. Просмотров 327. Ответов 2
Метки нет (Все метки)

Добрый день.
Можно ли как-нибудь еще увеличить функциональность своего класса без использования наследования?
Делаю свой класс А, в нем хочу реализовать несколько фич класса B. Сам я эти фичи написать не могу, т.к. не знаю, как они делаются, да и зачем изобретать велосипед. Ради каких-то нескольких функций наследовать класс B не хочу.
Что можете посоветовать? Может хитрости какие есть?

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

Как обойти массив без использования цикла - C++
С помощью рекурсии

Как написать генератор чисел без использования стандартных функций? - C++
Нужно написать программу генерирования равномерно распределенных случайных чисел без использования стандартных функций rand и т.д. Помогите...

Игровые движки пишут сначала на c++ без использования WinAPI объясните как? - C++
Здравствуйте!Модераторы похожих вопросов у меня много но конкретного ответа я не получил. Пожалуйста спецы ответьте я много изучаю...

Продолжение цепочки наследования без дублей базовых классов - C++
class A { public: A(); int x; }; class B : public A { public:

Как сделать замену слова в строке без использования функций библиотеки string? - C++
вводится строка => вводится слово, которое нужно заменить(если оно есть в строке)=> вводится слово на которое нужно заменить

Как найти медиану неотсортированного массива (без использования дополнительного массива) - C++
как найти медиану неотсортированного массива, при этом не используя дополнительных массивов и не сортируя его.

БЕЗ использования библиотечных функций - C++
Помогите написать программу... Написать программу, которая (без использования библиотечных функций для обработки строк), копировала бы...

Сортировка, без использования массивов - C++
Скажите, пожалуйста, можно-ли, имея в "распоряжении" только операторы выбора и циклы(никаких массивов!) выполнить следующее задание: ...

Вывод чисел от 1 до N без использования while, for - C++
Здравствуйте! Помогите пожалуйста, не могу разобраться в чем дело. На выходе числа 1 и 2 не зависимо от входных. #include <iostream> ...

Наследование без использования двоеточия - C++
Добрый вечер! Задача: Сделать наследование без использования ":". Заранее спасибо!


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

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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru