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

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

Войти
Регистрация
Восстановить пароль
 
ivanbelousov
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 34
#1

Доступ к private переменной класса из его потомка - C++

06.10.2015, 13:11. Просмотров 291. Ответов 3
Метки нет (Все метки)

Здравствуйте! Как получить доступ к закрытой переменной родительского класса в методе наследника?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
class Fowler 
{
private: 
    int c;
};
 
class BFowler : private Fowler
{
    void func(){ Fowler::c; }
};
 
int main( int argc, char * argv[])
{
    BFowler a;
 
    return EXIT_SUCCESS;
}
Выдает ошибку:
error: 'c' is a private member of 'Fowler'
void func(){ Fowler::c; }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2015, 13:11     Доступ к private переменной класса из его потомка
Посмотрите здесь:

Вызов метода базового класса из класса-потомка C++
Как получить private переменную класса, функцей членом другого класса C++
C++ Доступ к private структуре класса
Доступ к private членам класса C++
Получить доступ к переменной класса при наличии такого же имени переменной в функции C++
Доступ к данным потомка C++
C++ Не работает вызов виртуальной функции из класса потомка
C++ Вызов специфических для потомка функций, не зная класса потомка
Почему есть доступ к закрытой переменной класса C++
Доступ к атрибуту класса по его порядковому номеру C++
доступ к protected функции из потомка C++
Доступ к переменной родительского класса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1780 / 1155 / 223
Регистрация: 16.05.2013
Сообщений: 3,042
Записей в блоге: 5
Завершенные тесты: 1
06.10.2015, 13:23     Доступ к private переменной класса из его потомка #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
class Fowler 
{
protected: 
    int c;
};
DiffEreD
 Аватар для DiffEreD
1425 / 762 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
06.10.2015, 13:57     Доступ к private переменной класса из его потомка #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class BFowler;
 
class Fowler
{
   friend class BFowler;
private:
   int c;
};
 
class BFowler : private Fowler
{
   void func() { Fowler::c; }
};
Tulosba
:)
Эксперт С++
4383 / 3226 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.10.2015, 14:16     Доступ к private переменной класса из его потомка #4
Цитата Сообщение от ivanbelousov Посмотреть сообщение
Как получить доступ к закрытой переменной родительского класса в методе наследника?
Если такая необходимость возникла - значит надо переорганизовать архитектуру.
Допускать protected неконстантные данные - зло.
Хочешь получать доступ к private полю базового класса из производного - сделай в базовом методы доступа и размести их в protected секции:
C++
1
2
3
4
5
6
7
class B {
private:
  int c;
protected:
  int getC() const { return c; }
  void setC(int c) { this->c = c; }
};
Yandex
Объявления
06.10.2015, 14:16     Доступ к private переменной класса из его потомка
Ответ Создать тему
Опции темы

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