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

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

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

Наследование - C++

19.01.2011, 01:15. Просмотров 407. Ответов 5
Метки нет (Все метки)

Если я объявлю класс A, как базовый для класса B, то есть вот так:
C++
1
2
3
4
class B : public A
{
...
};
То в методах класса B будут доступны собственные элементы класса A(элементы из секции private)? Или для доступа к этим элементам я должен использовать общедоступные методы класса A?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2011, 01:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Наследование (C++):

Заменить наследование классов на наследование интерфейсов - C++
#include <iostream> #include <assert.h> using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование - C++
Ребят всем привет.Дайте задание для проверки знаний наследования и виртуальных функций,посложнее.

Наследование - C++
Здравствуйте! Написал код, не выдает никаких ошибок, но не работает. Может кто помочь сказать в чем может быть ошибка? Изначально был...

наследование - C++
добрый день, вопрос в следующем : #include <iostream> using namespace std; class A{ public: int foo(){...

Наследование - C++
Тут совершенно очевидно имеются ошибки, но я жутко туплю и не понимаю в чем именно. Буду очень благодарна, если мне подробно подскажут что,...

Наследование - C++
Помогите пожалуйста найти ошибку в коде. Тема: Наследование классов и виртуальные функции. Ошибка заключается в том, что переменные из...

5
panicwassano
594 / 562 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
19.01.2011, 01:49 #2
в закрытую область класса можно попасть только через общедоступные методы этого класса
0
volovzi
268 / 170 / 8
Регистрация: 14.03.2010
Сообщений: 501
19.01.2011, 01:54 #3
FanAizu, чтобы наследник базового класса имел доступ к его полям, они должны быть объявлены как защищённые (protected).
0
FanAizu
0 / 0 / 0
Регистрация: 14.01.2011
Сообщений: 31
19.01.2011, 01:56  [ТС] #4
Еще один вопрос, правда не по теме, но не хочется плодить кучу тем из-за мелочей.
Вопрос вот в чем. Допустим есть такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
    private:
    int a;
    int b;
    public:
    A(A & link)
    {
        a = link.a;
        b = link.b;
    }
};
Вопрос в следующем: правомерен ли такой конструктор копирования? Ведь данные объекта передаваемого в качестве аргумента находятся в секцие private. Или методы класса имеют доступ ко всем элементам объекта переданного в качестве аргумента, только в том случае, если этот переданный аргумент является объектом того же класса в котором определен данный метод?
0
igorrr37
1836 / 1454 / 224
Регистрация: 21.12.2010
Сообщений: 2,403
Записей в блоге: 11
19.01.2011, 02:18 #5
>правомерен ли такой конструктор копирования?
да
>методы класса имеют доступ ко всем элементам объекта переданного в качестве аргумента, только в том случае, если этот переданный аргумент является объектом того же класса в котором определен данный метод?
да
1
Mr.X
Эксперт С++
3060 / 1705 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
19.01.2011, 02:23 #6
Цитата Сообщение от FanAizu Посмотреть сообщение
Вопрос в следующем: правомерен ли такой конструктор копирования? Ведь данные объекта передаваемого в качестве аргумента находятся в секцие private. Или методы класса имеют доступ ко всем элементам объекта переданного в качестве аргумента, только в том случае, если этот переданный аргумент является объектом того же класса в котором определен данный метод?
Все правильно, в C++ данные инкапсулируются на уровне класса, а не на уровне объекта. Т.е. метод одного объекта класса A имеет доступ к приватным данным всех остальных объектов класса A.
1
19.01.2011, 02:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2011, 02:23
Привет! Вот еще темы с ответами:

Наследование - C++
У меня есть клас SHOP, одно из полей етого класа ето массив обьектов класса GOODS. Клас SELLER есть наследником SHOP. Надо написать ф-цию...

наследование - C++
Задача : Базовый класс: class Shape2D { public: Shape2D(); virtual ~ Shape2D(); virtual float Area( )= 0; virtual...

Наследование - C++
Реализовать наследование классов квартиры,этаж,подъезд,дом

Наследование С++ - C++
Есть базовый клас Data. Клас person наследует Data . Клас waiter наследует класы person и Data . Нужно перегрузить операцию вывода для...


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

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

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