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

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

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

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

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

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


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

Наследование, базовые классы и производные классы - C++
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных...

Виртуальные базовые классы - C++
Необходимо написать примеры с комментариями использования виртуальных базовых классов

Абстрактные базовые классы - C++
Не могу создать экземпляр производного от АБК класса: #pragma once class BaseEllips { private: double x; double y; public: ...

Абстрактные базовые классы - C++
Помогите решить пожалуйста!) Задание 1 . Создать базовый класс - фигура, и производные класс - круг, прямоугольник, трапеция....

Виртуальные абстрактные базовые классы - C++
Привет всем!:-) Вчера столкнулся со следующей проблемой: компилятор ругается на чистый виртуальный деструктор. Собственно листинги: ...

Виртуальные базовые классы/закрытое наследование - C++
Хотел уточнить правильно ли я понял материал. Если я породил два класса через виртуальное, открытое наследование от одного базового класса,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7210 / 4376 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
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(); // так сделать можно
    }
};
Спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2013, 18:31
Привет! Вот еще темы с ответами:

Виртуальные базовые классы: какие требования предъявляются к иерархии наследования? - C++
класс на вершине иерархии определяет конструктор с параметрами. какие требования предъявляются к иерархии наследования?? ...

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include &lt;iostream&gt; class Point { public: void SetX(int...

Базовые знания - C++
Всем доброго времени суток! У меня появилась нужда в систематизации знаний языка,и потому хотел бы узнать несколько интересующих меня...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы - C++
Нужно написать программу, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы. Реализовать её нужно в трех...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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