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

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

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

класс наследник - C++

22.08.2013, 17:39. Просмотров 445. Ответов 9
Метки нет (Все метки)

Добрый день! Интересует вопрос отношения между parent-классом и child'ом. Допустим в protected parent класса описаны какие-то методы, а класс наследник имеет доступ к protected parent'a, нужно ли в наследнике заново перечислять все методы? или можно брать некоторые методы прям с парента?
Допустим:

C++
1
2
3
4
5
6
7
8
9
10
11
class Parent
{
protected:
int method 1();
int method 2();
}
 
class child: protected Parent
{
...
}
Можно ли вызвать в main'е метод таким способом:
C++
1
2
child NewChild();
NewChild.method 1();
????????????????????????????????
или метод обязательно дублировать в описании класса в header'е???
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2013, 17:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос класс наследник (C++):

Абстрактный класс CGraphicsObject, его наследник - базовый класс CPoint, и класс - наследник от CPoint - C++
Всем доброй ночи! Очень нужна помощь и по мере возможности разъяснения на темы: абстрактный класс в задании(что он из себя представляет и...

Создать класс Pair(пара чисел) и класс-наследник Fraction - C++
Создать класс Pair (пара чисел); определить методы изменения полей и сравнения пар: пара p1 больше пары p2, если (first.p1>first.p2) или...

Создать класс с одним полем и класс наследник с другим - C++
Создать класс Демо с одним полем Дата(инт) создать конструктор по умолчанию, с параметром копирования. Добавить gete и sete. От класса...

Создать класс Point и класс-наследник Line - C++
Создайте класс Point (точка), который содержит элементы целого типа xCoordinate и yCoordinate, и класс наследник Line, имеющий функции...

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число" - C++
Ткма работы создать класс pair (пара чисел); определить метод перемножения полей и операцию сложения пар (a,b)+(c,d) =(a+b,c+d)...

Реализовать базовый класс "Футбольная команда" и класс-наследник с методами консольного ввода/вывода - C++
Составить программу на языке С++, в которой описывается класс (с добавлением наследуемого подкласса) с методами ввода с клавиатуры и вывода...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
no_wearines
53 / 49 / 2
Регистрация: 01.01.2012
Сообщений: 324
22.08.2013, 18:15 #2
Цитата Сообщение от dmitro_ua Посмотреть сообщение
или можно брать некоторые методы прям с парента?
Можно.
Цитата Сообщение от dmitro_ua Посмотреть сообщение
Можно ли вызвать в main'е метод таким способом:
child NewChild();
NewChild.method 1();
Нет. Ваш method1 находится в секции protected - в программе-драйвере он невидим! Другое дело, если public.
1
dmitro_ua
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 11
22.08.2013, 18:49  [ТС] #3
Цитата Сообщение от no_wearines Посмотреть сообщение
Можно.

Нет. Ваш method1 находится в секции protected - в программе-драйвере он невидим! Другое дело, если public.
public видим только, так сказать, 1му поколению детей. Внукам он уже не видим?
0
no_wearines
53 / 49 / 2
Регистрация: 01.01.2012
Сообщений: 324
22.08.2013, 18:57 #4
Цитата Сообщение от dmitro_ua Посмотреть сообщение
public видим только, так сказать, 1му поколению детей. Внукам он уже не видим?
Как понять?
0
dmitro_ua
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 11
22.08.2013, 22:25  [ТС] #5
то есть, child'у будут доступны методы, но child'у child'а нет! правильно?
0
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
22.08.2013, 22:27 #6
Если тип наследование public или protected, то они будут доступны в любом уровне наследования.
Просто представьте себе дочерний класс так, будто вы скопировали содержимое родительского и добавили еще чего-то.
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.08.2013, 22:32 #7
Цитата Сообщение от dmitro_ua Посмотреть сообщение
public видим только, так сказать, 1му поколению детей. Внукам он уже не видим?
Где у вас public? Разговор о protected идёт.
0
dmitro_ua
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 11
22.08.2013, 22:49  [ТС] #8
Ниже моего поста мне написали, что сделав protected public'ом можно открыть доступ к функциям, то есть ответили на мой вопрос. И мне вроде бы когда-то говорили, что лишь первая ветка child'ов видит public. Верно или нет?
0
no_wearines
53 / 49 / 2
Регистрация: 01.01.2012
Сообщений: 324
22.08.2013, 22:52 #9
нет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class h1 {
public:
int q;
};
 
class h2 : public h1 {
public:
};
 
class h3 : public h2 {
public:
};
 
 
int main() {
 
h3 w;
w.q = 23;
 
getch();
return 0;
}
1
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
22.08.2013, 22:53 #10
Цитата Сообщение от dmitro_ua Посмотреть сообщение
мне вроде бы когда-то говорили, что лишь первая ветка child'ов видит public.
public доступно отовсюду, во всех наследниках, и вне иерархии тоже.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2013, 22:53
Привет! Вот еще темы с ответами:

Написать класс и его наследник - C++
Создать класс, описывающий квадратное уравнение. Определить, сколько корней имеет уравнение. Создать класс наследник, дополнительно...

класс наследник на основе базового класса - C++
-----

Базовый класс - текстовый файл и наследник... - C++
А)Базовый класс Б)Класс наследник А) Текстовый файл, поддерживающий все стандартные файловые функции Паскаля. Возможно чтение и...

Как передать в переменную класс-наследник? - C++
Есть главный класс куда я отправляю класс-контроллер class DrawBase { private: Controller* controllerClass; public: void...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.08.2013, 22:53
Ответ Создать тему
Опции темы

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