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

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

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

Базовые и порожденные классы - C++

28.12.2013, 18:12. Просмотров 436. Ответов 2
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста с вопросом:
Что должно быть предусмотрено в базовом классе, чтобы порожденный класс мог обращаться к закрытым полям базового класса?


если можно то с примером.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2013, 18:12     Базовые и порожденные классы
Посмотрите здесь:

C++ Абстрактные базовые классы
C++ Базовые вычислительные конструкции структурного программирования
Базовые понятия о рекурсии C++
Базовые знания C++
C++ Виртуальные абстрактные базовые классы
C++ виртуальные базовые классы
C++ Базовые понятия-класс. Как он сотносится с обьектом?
Можно ли выучить C++, имея базовые понятия в C? C++
C++ C++ и базовые функции PHP
C++ Базовые типы данных
C++ Абстрактные базовые классы
C++ Виртуальные базовые классы/закрытое наследование

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
6614 / 3805 / 495
Регистрация: 29.11.2010
Сообщений: 10,044
28.12.2013, 18:22     Базовые и порожденные классы #2
Они (свойства и методы) должны иметь модификатор доступа public или protected.
Либо обращение должно идти через методы-интерфейс базового класса, который сами имеют модификатор доступа не private, а внутри работают с любыми членами (в т.ч. private).

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class A
{
  public:
    int getY() const { return y; } // интерфейс для доступа к закрытому члену
  protected:
    int x;
  private:
    int y;
};
 
class B : public A
{
  public:
    void foo() const
    {
        std::cout << x;      // так сделать можно
        // std::cout << y; так сделать нельзя, модификатор доступа private
        std::cout << getY(); // так сделать можно
    }
};
Ks1NoN
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 36
28.12.2013, 18:31  [ТС]     Базовые и порожденные классы #3
Цитата Сообщение от MrGluck Посмотреть сообщение
Они (свойства и методы) должны иметь модификатор доступа public или protected.
Либо обращение должно идти через методы-интерфейс базового класса, который сами имеют модификатор доступа не private, а внутри работают с любыми членами (в т.ч. private).

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class A
{
  public:
    int getY() const { return y; } // интерфейс для доступа к закрытому члену
  protected:
    int x;
  private:
    int y;
};
 
class B : public A
{
  public:
    void foo() const
    {
        std::cout << x;      // так сделать можно
        // std::cout << y; так сделать нельзя, модификатор доступа private
        std::cout << getY(); // так сделать можно
    }
};
Спасибо
Yandex
Объявления
28.12.2013, 18:31     Базовые и порожденные классы
Ответ Создать тему
Опции темы

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