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

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

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

Наследование классов, механизм виртуальных функций - C++

18.12.2012, 22:35. Просмотров 642. Ответов 0
Метки нет (Все метки)

Общая постановка. Программа должна содержать:
• базовый класс Х, включающий два элемента х1, х2 типа int,
• конструктор с параметрами для создания объектов в динамической области памяти,
• деструктор,
• виртуальные методы просмотра текущего состояния и переустановки объектов базового класса в новое состояние.
• производный класс У, включающий один элемент у типа int ,
• конструктор с параметрами и списком инициализаторов, передающий данные конструктору базового класса,
• переопределенные методы просмотра текущего состояния объектов и их переустановки в новое состояние.

Значение (x1-x2)/y

Пример:

Ограничение на наследование
При определении производного класса не наследуются из базового:
1. конструкторы;
2. деструкторы;
3. операторы new, определенные пользователем;
4. операторы присвоения, определенные пользователем;
5. отношения дружественности.
Использование косвенной адресации с установкой указателей на базовый класс. Механизм косвенной адресации рассмотрим на примере:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class B
{
public:
int x;
B() {            // Конструктор по умолчанию
x = 4; }
};
class D : public B {      // Производный класс
public:
int y;
D() 
{            // Конструктор по умолчанию
y = 5; }
};
void main(void)  {
D  d;// Конструктор класса D создает объект d 
B *p; // Указатель установлен на базовый касс 
p = &d;// Указатель p инициализируется адресом d 
// косвенное обращение к объектам базового и производного классов
// «считываем их текущее состояние в переменные 
int i = p -> x;  // Базовый класс виден напрямую
int j = ( ( D* ) p )p -> y;// Прямое преобразование указателя на D 
// через переменные печатаем их текущее состояние
cout << “ x_i=<< i << endl;    
cout << “ y_j=<< j << endl;    
getch();
}
совсем не знаю как делать(((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2012, 22:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование классов, механизм виртуальных функций (C++):

Наследование классов, механизм виртуальных функций - C++
Выручайте !!! Программа должна содержать: • базовый класс Х, включающий два элемента х1, х2 типа int, • конструктор с параметрами...

Механизм виртуальных функций - C++
Всем привет! Имею базовый абстрактный класс: class Interface { public: //функция детектирования устройства true - если команда...

Странное наследование виртуальных функций - C++
Что-то я туплю - почему нижеприведенный код компилируется? В предке определена pure virtual функция возвращающая rvalue, а в потомке -...

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

Множественное наследование с использованием абстрактных базовых классов, файлового ввода-вывода с применением потоков С++, функций обработки исключи - C++
Создать программу с абстрактным базовым классом и множественным наследованием, реализовать в нем: • конструктор, • деструктор, ...

функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. - C++
функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2012, 22:35
Привет! Вот еще темы с ответами:

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

Наследование классов. Копирование производных классов - C++
Здравствуйте всем, у меня такой вопрос: написал код #include &quot;stdafx.h&quot; class A //Создаем класс А { int mA; ...

Перегрузка виртуальных функций - C++
please HELP! перегружаю виртуальную функцию в абстрактном классе. class ONE { virtual std::string FUN(const std::string&amp;...

Использование виртуальных функций - C++
Дан класс &quot;треугольник&quot;, который определяется длиной одной из сторон и значениями прилегающих двух углов. Создать соответствующие...


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

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

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