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

Невозможно обратиться к protected член, объявленному в классе "Counter" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Апишите программу которая может перечислять членов ордена по действительным именам по должностям http://www.cyberforum.ru/cpp-beginners/thread1232611.html
4.Вступив в Благотворительный орден программистов(Benevolent Order of Programmers- BOP), вы можете быть известны на собраниях ВОР под своим действительным именем, по названию должности или по...
C++ Создание объекта в области памяти Не могу разобраться с таким вопросом. Пусть есть у нас класс Example (у него есть стандартный конструктор и неважно что он делает). и имеется следующая функция: void foo(){ ... http://www.cyberforum.ru/cpp-beginners/thread1232597.html
C++ Как сделать преобразование в string для своего класса
есть 2 строчки кода Var a = "dfsfdfd"; string b = (string)a; в класса есть перегруженный оператор operator string (); но компилятор на него не реагирует и тупо не хочет компилировать, сразу...
C++ Требуется собрать кучу object в один контейнер и искать их по object_name
Пусть дана структура вида: struct object { object(const std::string&_object_name):object_name(_object_name){} bool operator<(const object&o)const{return object_name<o.object_name;} ...
C++ Нужно продублировать первое чётное число в односвязном списке http://www.cyberforum.ru/cpp-beginners/thread1232561.html
Написал вот такой код, он рабочий, но никак не пойму, что нужно сделать, чтоб выполнялась поставленная задача. Прошу помочь. #include "stdafx.h" #include <iostream> #include <string.h> #include...
C++ Как циклически организовать задание значений, пока не получится то, что надо Делал игру кубики нужно сделать ничью что бы когда выбивало два одинаковых значений перекручивало сначала если нету два одинаковых значения переходил к следующему сигменту кода подробнее

Показать сообщение отдельно
DrOffset
7315 / 4415 / 1000
Регистрация: 30.01.2014
Сообщений: 7,252
23.07.2014, 20:35
Цитата Сообщение от alsav22 Посмотреть сообщение
Вопрос остался: почему в методе производного класса нельзя вызвать защищённый конструктор базового?
А вот в чем вопрос-то. Я сразу не понял
В общем, protected просто так работает. Он предоставляет доступ к "закрытым" полям базового класса только для объекта наследника. Вот небольшой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A
{
protected:
    int a;
};
 
class B : public A
{
public:
    B()
    {
         a = 1; // ок. мы в том же самом объекте
         A * p = this;
         p->a = 0; //ошибка
    }
};
Конструирование класса А тоже к этому относится. Т.к. конструктор вызывается уж не у текущего объекта.
Ссылку на стандарт попробую попозже найти.

Добавлено через 9 минут
Собственно вот (о чем я и говорил см. Clause 11):
12/4
Special member functions obey the usual access rules (Clause 11). [ Example: declaring a constructor
protected ensures that only derived classes and friends can create objects using it
. —end example ]
Как раз привели в пример конкретную ситуацию с конструктором.
4
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru