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

Так в каких случаях стоит использовать наследование? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив: Удалить в матрице столбцы количество нулей в которых больше половины. http://www.cyberforum.ru/cpp-beginners/thread793812.html
То что накрапал.Здание , которое необходимо реализовать : Удалить в матрице столбцы количество нулей в которых больше половины. При этом должна быть работа со структурами. // For practisw.cpp:...
C++ undefined reference to IID_IMultiLanguage Использую mingw + code::blocks для сборки библиотеки vmime под windows, в библиотеке используется COM, строка CoCreateInstance(CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER, IID_IMultiLanguage,... http://www.cyberforum.ru/cpp-beginners/thread793809.html
C++ Прединкремент и постинкремент в цикле for
Всем привет! Пытаюсь сам себе ответить на вопрос, есть ли разница в использовании пред- и постинкремента в цикле for. Т.е. циклы: for (a=0; a<10; a++); и for (a=0; a<10; ++a); идентичны или нет?...
C++ Осуществить сдвиг матрицы
вообщем программа много чего делает , не суть , проблема заключаеться в ф-ции memcpу , по сколько при выводиде результирующего массива скопированная в него вторая матрица принимает отрицательные...
C++ Причина такого вывода данных? http://www.cyberforum.ru/cpp-beginners/thread793794.html
Простой пример. Определил размерность массива 100. Так почему sizeof выдаёт значение 400, а не 100? Любые значения множаться на 4. Это как же так? #include <array> #include <locale> #include...
C++ Создать базовый класс Array Задание выглядит так: Создать базовый класс Array, в котором определите полемассив подходящеrо типа и поле для хранения количества элементов у текущего объектамассива. Максимально возможный размер... подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
25.02.2013, 21:03
p0lym0rph, единственное применение private наследования это как раз указать, что класс "реализуется посредством". С помощью агрегации/вложения моделируют связь "содержит". Это даже не говорит о том, что между классами существует концептуальная взаимосвязь, это просто заинтересованность в повторном использовании кода. Это исключительно прием реализации а не проектирования связей.
Фактически, вложение тоже означает "реализуется посредством/содержит". Так вот, закрытое наследование надо использовать лишь в исключительных моментах, когда вы его просто обязаны применить, в остальных случаях предпочитайте агрегацию.
Пример: когда класс существует исключительно для того, чтобы быть унаследованным и до конца реализованным лишь у потомков, при этом обезопасив себя вы умышленно делаете все его методы закрытыми и используйте private наследование.
Но это тонкости языка.
А что означает protected? Лишь условность, удобство использования, конкретное определение связи оно не дает, нужно смотреть на рамки определенной задачи.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru