Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452

Пояснить, почему в примере не рекомендуется использовать закрытое наследование

15.05.2015, 14:32. Показов 3163. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток !

Помогите пожалуйста разобраться с этой фразой на примере .

То что я знаю про закрытое наследование , так это-то , что к методам базового класса я могу обращаться

только из методов производного.

Эта фраза ввела меня в ступор.
Миниатюры
Пояснить, почему в примере не рекомендуется использовать закрытое наследование  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.05.2015, 14:32
Ответы с готовыми решениями:

Как используя закрытое наследование использовать 2 объекта базового класса?
Доброго времени суток. Учусь по книге "Прата С. Язык программирования C++. Лекции и упражнения. Не могу понять упражнение...(глава 14,...

Почему не рекомендуется использовать препроцессор?
Я сейчас активно пользуюсь #define для упрощения понимания кода. Например, у меня сложная система классов, что бы получить одну...

Закрытое наследование
Всем привет. Выполняю упражнение в книжке Прата, тема-закрытое наследование Подскажите пожалуйста, почему у меня не выводится год(Year)?...

34
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
17.05.2015, 13:03  [ТС]
Студворк — интернет-сервис помощи студентам
а русская версия есть ?

под хр пойдет ?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
17.05.2015, 16:48
Цитата Сообщение от RAFA91 Посмотреть сообщение
а русская версия есть ?
Есть
https://www.visualstudio.com/r... ty-vs.aspx
Но не рекомендую. Некоторые вещи лучше не переводить.
Цитата Сообщение от RAFA91 Посмотреть сообщение
под хр пойдет ?
нет.
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
18.05.2015, 11:47  [ТС]
ну а если тогда вижуал 8 ?

не хочу менять винду
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
18.05.2015, 14:03
Цитата Сообщение от RAFA91 Посмотреть сообщение
ну а если тогда вижуал 8 ?
не хочу менять винду
Скачайте Codeblocks с mingw. Там, конечно, не все фишки С++11 поддерживаются (как и студии 2013), но большинство есть. На xp идёт.

Добавлено через 28 секунд
Компилятор там всяк лучше того, что в комплекте с VS.
2
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
18.05.2015, 14:17  [ТС]
спасибо большое буду думать.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
15.11.2015, 16:21  [ТС]
Добрый день !

Подскажите пожалуйста почему в классе C нету доступа к переменной x . в классе B доступ к ней есть

она же в protected:

_____________________________

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A
{
protected:
    int x;
public:
};
 
class B : private A
{
public:
};
 
class C : public B
{
public:
};
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
15.11.2015, 16:59
Цитата Сообщение от RAFA91 Посмотреть сообщение
в классе B доступ к ней есть
Потому что В непосредственный наследник от A (хоть и private).
Цитата Сообщение от RAFA91 Посмотреть сообщение
в классе C нету доступа к переменной x
Именно из-за private наследования A в классе B. Т.е. всё что будет наследоваться от B уже не может увидеть того, что в protected секции A
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
15.11.2015, 18:26  [ТС]
уточнение для закрепления.

для обьекта класса С доступ к методам класса A может идти только из методов класса B ?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
15.11.2015, 20:37
Цитата Сообщение от RAFA91 Посмотреть сообщение
для обьекта класса С доступ к методам класса A может идти только из методов класса B ?
да.
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
16.11.2015, 15:52  [ТС]
для закрепления знаний.

есть такое

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A
{
protected:
    int x;
public:
};
 
class B : private A
{
public:
};
 
class C : private B
{
public:
};
в данном случае что то изменится при замене
C++
1
 class C : private B
на
C++
1
class C : protected B
?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
16.11.2015, 18:30
Цитата Сообщение от RAFA91 Посмотреть сообщение
для закрепления знаний.
Читай книги. Экспериментируй.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
17.11.2015, 15:05  [ТС]
я уже почитал и поэкспериментировал, теперь жду уточнения от знатоков.

в данном случае что то изменится при замене


C++
1
 class C : private B
на
C++
1
class C : protected B

пускай будет класс С конечной точкой наследования.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.11.2015, 15:18
Цитата Сообщение от RAFA91 Посмотреть сообщение
я уже почитал и поэкспериментировал
Молодец. Можешь поделиться результатами для последующих читателей.
Цитата Сообщение от RAFA91 Посмотреть сообщение
жду уточнения от знатоков.
Чтобы что-то уточнять, надо иметь базовую версию, а ты ее не озвучил. Т.о. уточнять нечего.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
17.11.2015, 17:32  [ТС]
Цитата Сообщение от Tulosba Посмотреть сообщение
Можешь поделиться результатами для последующих читателей.
как я понял при закрытом наследовании class B : private A методы класса А распространяется только до класса B ,

а защищенное наследование class B : protected A распространяет методы класса А еще на уровень ниже.

может что то и не так написал !
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
17.11.2015, 17:47
Цитата Сообщение от MrGluck Посмотреть сообщение
Там, конечно, не все фишки С++11 поддерживаются (как и студии 2013), но большинство есть.
Так не обязательно пользоваться компилятором, который там в наборе идёт вместе с Code::Blocks (а именно MinGW 4.8.1). Можно ведь к Code::Blocks прикрутить LLVM Clang, например. Ну или тот же MinGW, только поновее. Было бы желание.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2015, 17:47

Закрытое наследование
Добрый день, форум:) Помогите разобраться: Базовый класс vector и от него наследую допустим "очередь" , и.. когда хочу в...

закрытое наследование
Объясните, плиз. Заранее спасибо В классе Base поле X находится в части private, производный класс объявлен так: class Derived:...

Закрытое наследование
Помогите, пожалуйста, ответить на такой вопрос: Что такое переопределение методов (в производном классе)? Продемонстрировать его...

Закрытое наследование. Вывод строки
Здравствуйте. Необходимо вывести элемент класса std::string в данном случае: class Wine : protected Pair, private string { int...

Закрытое наследование, как добраться до функции?
Всем привет! Собственно, я никак не могу понять, как мне использовать функцию sum(), класса valarray, находящегося в pair при закрытом...


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

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru