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

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

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

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

31.05.2013, 09:31. Просмотров 446. Ответов 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++ Не могу понять в чем заключается ошибка.
Подскажите,в чем заключается ошибка. C++
C++ Объясните пожалуйста в чем заключается задание
Передача файла из одного ПК к другому C++
C++ Как правильно производится наследование элементов от шаблона класса? В чем ошибка?
Ошибка в чем заключается? C++
Как исправить ошибку и в чем она заключается C++
Передача свойства одного экземпляра класса другому экземпляру класса C++
C++ Как передать параметры конструктора одного класса другому?
В чем заключается ошибка? Поиск минимального элемента двухмерного массива C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,164
Завершенные тесты: 2
31.05.2013, 09:38     В чем заключается наследование одного класса другому? #2
Цитата Сообщение от ardos Посмотреть сообщение
1. В чем заключается наследование одного класса другому? В чем разница в организации
наследования полей и методов?
наследование является мощным механизмом уменьшения количества кода, класс наследник наследует все методы и данные определенные в базовом классе, говоря простым языком - код базового класса дублируется для класса наследника и при определенных модификаторах наследования можно, либо нельзя обращаться к наследуемому телу базового класса
zer0mail
2307 / 1933 / 192
Регистрация: 03.07.2012
Сообщений: 6,922
Записей в блоге: 1
31.05.2013, 09:38     В чем заключается наследование одного класса другому? #3
Простенькие задания надо самому делать. Или ленивенький?
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,164
Завершенные тесты: 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     В чем заключается наследование одного класса другому?
Ответ Создать тему
Опции темы

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