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

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

Войти
Регистрация
Восстановить пароль
 
ardos
-133 / 7 / 0
Регистрация: 24.02.2013
Сообщений: 234
#1

В чем заключается наследование одного класса другому? - C++

31.05.2013, 09:31. Просмотров 475. Ответов 3
Метки нет (Все метки)

Вообщем есть пара заданий теория ,можек кто-нибудь помочь и ответить на них

1. В чем заключается наследование одного класса другому? В чем разница в организации
наследования полей и методов?
1. Определены 2 класса:
C++
1
2
3
сlass Based{public: int x;};
сlass Derived :public Based{};
/***********/
Какое значение выводится на консоль?
C++
1
2
3
4
5
Based b1;
b1.x=3;
Derived d1;
d1.x=4;
cout<<b1.x;
2. Удачной ли является иерархия классов, при которой некоторый класс Х является производным от большого количества классов с большим числом полей в каждом ( A<-B <- C <- X)? Какая существует альтернатива наследованию?
3. Каким образом производится управление доступом к унаследованным компонентам производных классов? Есть ли в представленном фрагменте программы ошибки?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Base {
int y;
       public:
void setx(int n){x=n;}
void showx() const{ cout <<x<<endl;}
};
class Derived: public Base {
int x;
public:
void sety(int n){y=n;}
void show_sum() const{ cout<<x+y<<endl; }
void show() const {cout<<y<<endl; }
};
4. Есть ли ошибки в нижеследующих объявлениях:
C++
1
2
3
Shape sh;   // класс Shape абстрактный 
Shape *psh;
Shape *psh1=new Shape();
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 09:31     В чем заключается наследование одного класса другому?
Посмотрите здесь:

Полиморфизм, наследование и приведение экземпляров класса одного к другому - C++
Есть некий класс со своими переменными,его экземпляр занимает какое-то количество памяти. Интерфейс выглядит примерно так: /*...

Наследование: как передать массив одного класса другому классу? - C++
Доброе время суток, нужна помощь. Не могу сотворить чудо. Сомневаюсь уже во всём. Как передать массив одного класса другому классу? Дабы...

Передача свойства одного экземпляра класса другому экземпляру класса - C++
#include &lt;tchar.h&gt; class A { public: A(); int aVar; }; class B : public A

Присваивание значений одного класса другому. - C++
Скажите, могу ли я присвоить значения одного объекта класса другому объекту того же класса? class card { //код код код }; int...

Как передать параметры конструктора одного класса другому? - C++
Скажите пожалуйста, как это должно работать? Как передать параметры конструктора одного класса другому? #include &lt;iostream&gt; using...

Как правильно производится наследование элементов от шаблона класса? В чем ошибка? - C++
Приведу чисто условный пример. Есть какой-нибудь шаблон класса: template &lt;class tempType&gt; class Base { protected: tempType...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
31.05.2013, 09:38     В чем заключается наследование одного класса другому? #2
Цитата Сообщение от ardos Посмотреть сообщение
1. В чем заключается наследование одного класса другому? В чем разница в организации
наследования полей и методов?
наследование является мощным механизмом уменьшения количества кода, класс наследник наследует все методы и данные определенные в базовом классе, говоря простым языком - код базового класса дублируется для класса наследника и при определенных модификаторах наследования можно, либо нельзя обращаться к наследуемому телу базового класса
zer0mail
2330 / 1956 / 192
Регистрация: 03.07.2012
Сообщений: 7,013
Записей в блоге: 1
31.05.2013, 09:38     В чем заключается наследование одного класса другому? #3
Простенькие задания надо самому делать. Или ленивенький?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2013, 09:46     В чем заключается наследование одного класса другому?
Еще ссылки по теме:

Ошибка в чем заключается? - C++
Где тут ошибка в алгоритме ?

Подскажите,в чем заключается ошибка. - C++
Пишет,что в 26(здесь на 27) строке нету &quot;)&quot; перед &quot;;&quot;. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int...

Объясните пожалуйста в чем заключается задание - C++
Вот задание: Добавьте в состав класса виртуальную функцию просмотра текущего объекта print (), а в производный класс Dancer_l -...

Не могу понять в чем заключается ошибка. - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; struct air {char punkt; float vriz; float vrpr; int ksm; int...

Как исправить ошибку и в чем она заключается - C++
Привет,помогите пожалуйста #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &quot;vichiclenia.cpp&quot; using namespace...

В чем заключается ошибка? Поиск минимального элемента двухмерного массива - C++
Здравствуйте! Есть массив 5 на 3( матрица), нужно найти значение минимальное, мне выводит ноль, не понимаю в чем тут ошибка. { ...


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

Или воспользуйтесь поиском по форуму:
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
31.05.2013, 09:46     В чем заключается наследование одного класса другому? #4
Цитата Сообщение от ardos Посмотреть сообщение
1. Определены 2 класса:
сlass Based{public: int x;};
сlass Derived ublic Based{};
/***********/
Какое значение выводится на консоль?
Based b1;
b1.x=3;
Derived d1;
d1.x=4;
cout<<b1.x;
так как по умолчанию в классе идентификатор доступа к полям является private, то будет ошибка компиляции - доступ к приват данному класса Based

Добавлено через 1 минуту
Цитата Сообщение от ardos Посмотреть сообщение
4. Есть ли ошибки в нижеследующих объявлениях:
Shape sh; // класс Shape абстрактный
Shape *psh;
Shape *psh1=new Shape();
можно создавать указатель или ссылку на абстрактный класс, но не объект абстрактного класса

Добавлено через 4 минуты
Цитата Сообщение от ardos Посмотреть сообщение
3. Каким образом производится управление доступом к унаследованным компонентам производных классов? Есть ли в представленном фрагменте программы ошибки?
class Base {
int y;
public:
void setx(int n){x=n;}
void showx() const{ cout <<x<<endl;}
};

class Derived: public Base {
int x;
public:
void sety(int n){y=n;}
void show_sum() const{ cout<<x+y<<endl; }
void show() const {cout<<y<<endl; }
};
приват поля базового класса не видны в производном классе, в любом случае
протектед и паблик поля видны в производных классах
Yandex
Объявления
31.05.2013, 09:46     В чем заключается наследование одного класса другому?
Ответ Создать тему
Опции темы

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