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

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

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

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

22.08.2013, 17:39. Просмотров 435. Ответов 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'е???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2013, 17:39     класс наследник
Посмотрите здесь:

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

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

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

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

Наследование: базовый класс - массив, наследник - матрица - C++
Помогите пожалуйста с наследованием. базовый класс - массив, наследник - матрица. Использовать именно наследование.

Написать класс «множество» – наследник класса «массив» - C++
Ребята может есть что-то прошу помощи. Написать класс «множество» – наследник класса «массив» (множество понимается в привычном...

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

Нет. Ваш method1 находится в секции protected - в программе-драйвере он невидим! Другое дело, если public.
public видим только, так сказать, 1му поколению детей. Внукам он уже не видим?
no_wearines
52 / 48 / 2
Регистрация: 01.01.2012
Сообщений: 324
22.08.2013, 18:57     класс наследник #4
Цитата Сообщение от dmitro_ua Посмотреть сообщение
public видим только, так сказать, 1му поколению детей. Внукам он уже не видим?
Как понять?
dmitro_ua
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 11
22.08.2013, 22:25  [ТС]     класс наследник #5
то есть, child'у будут доступны методы, но child'у child'а нет! правильно?
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
22.08.2013, 22:27     класс наследник #6
Если тип наследование public или protected, то они будут доступны в любом уровне наследования.
Просто представьте себе дочерний класс так, будто вы скопировали содержимое родительского и добавили еще чего-то.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.08.2013, 22:32     класс наследник #7
Цитата Сообщение от dmitro_ua Посмотреть сообщение
public видим только, так сказать, 1му поколению детей. Внукам он уже не видим?
Где у вас public? Разговор о protected идёт.
dmitro_ua
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 11
22.08.2013, 22:49  [ТС]     класс наследник #8
Ниже моего поста мне написали, что сделав protected public'ом можно открыть доступ к функциям, то есть ответили на мой вопрос. И мне вроде бы когда-то говорили, что лишь первая ветка child'ов видит public. Верно или нет?
no_wearines
52 / 48 / 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2013, 22:53     класс наследник
Еще ссылки по теме:

Сознатие графического приложения (Создать класс-наследник от FIGURE) - C++
1). Создать класс-наследник от FIGURE, который представляет собой красную сетку с размером ячейки 30 точек на белом фоне. В левом...

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

Реализовать класс "наследник" - C++
Spisok.h #pragma once class Spisok { int size1; int size2; int **mas; public: Spisok(int,int);

Наследник не унаследовал поле ? - C++
Есть следующий код : class Parent { public: Parent():str("Parent") {} ~Parent(){} string name; };


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

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
1449 / 1178 / 61
Регистрация: 21.04.2012
Сообщений: 2,466
Завершенные тесты: 3
22.08.2013, 22:53     класс наследник #10
Цитата Сообщение от dmitro_ua Посмотреть сообщение
мне вроде бы когда-то говорили, что лишь первая ветка child'ов видит public.
public доступно отовсюду, во всех наследниках, и вне иерархии тоже.
Yandex
Объявления
22.08.2013, 22:53     класс наследник
Ответ Создать тему
Опции темы

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