Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
1

Наследование классов и виртуальные функции

28.10.2017, 18:55. Показов 1770. Ответов 3
Метки нет (Все метки)

Доброго времени суток. Передо мной стоит следующая задача:
Разработать программу с использованием наследования классов, реализующую классы: графический объект; круг; квадрат. Используя виртуальные функции, не зная с объектом какого класса вы работаете, выведите на экран его размер и координаты.

Уже написал простенький вариант и хотел спросить Вашего мнения, верно ли я понял смысл задания и правильно ли я его выполняю. И хотел спросить как "координаты" задавать и выводить массивом. Совсем запутался при попытке это сделать.

Вот код:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <windows.h>
 
using namespace std;
 
class Figures
{
protected:
    int size;
    int koord;
public:
    Figures(int a, int b): size(a), koord(b) { }
    virtual void Show() = 0;
};
 
class Circle: public Figures
{
public:
    Circle(int a,int b): Figures(a,b) { }
    virtual void Show()
    {
        cout << "Круг. Размер: " << size <<" Координаты: " << koord <<endl;
    }
};
 
class Square: public Figures
{
public:
    Square(int a,int b): Figures(a,b) { }
    virtual void Show()
    {
        cout << "Квадрат. Размер: " << size <<" Координаты: " << koord <<endl;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Figures *w[2];
    
    int s,k,s1,k1;
    cout<< "Введите координаты круга: " ; cin>>k;
    cout<< "Введите размер круга: " ; cin>>s;
    system("CLS");
    cout<< "Введите координаты квадрата: " ; cin>>k1;
    cout<< "Введите размер квадрата: " ; cin>>s1;
    system("CLS");
    
    w[0] = new Circle(s,k);
    w[1] = new Square(s1,k1);
 
    w[0]->Show();
    w[1]->Show();
 
    delete w[0];
    delete w[1];
 
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2017, 18:55
Ответы с готовыми решениями:

Реализовать иерархию классов (использовать наследование, полиморфизм, виртуальные функции)
Первый базовый класс – млекопитающие; поля – способ питания, вес, среда обитания. Во втором базовом...

Наследование нескольких классов использующее виртуальные методы
Здравствуйте! Такое вот задание: Создать класс Number c виртуальными методами, реализующими...

Наследование и виртуальные функции
Скажите, часто ли вы при проектирование реальных программ используете наследование?

Наследование и виртуальные функции
Определить иерархию классов (игрушка, продукт, товар, молочный продукт). Определить в классе...

3
6987 / 6027 / 2736
Регистрация: 14.04.2014
Сообщений: 25,792
28.10.2017, 19:16 2
У тебя одно и то же выводится. Смысла в виртуальности нет. Обычно выводят площади или периметры, чтобы формулы разные были.
0
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
28.10.2017, 19:46  [ТС] 3
nmcf, то-есть "выводиться одно и то же"? И для чего посоветуете использовать виртуальность, именно в моем задании?
0
6987 / 6027 / 2736
Регистрация: 14.04.2014
Сообщений: 25,792
28.10.2017, 20:01 4
Лучший ответ Сообщение было отмечено Sergey Chepets как решение

Решение

Все поля, задействованные в Show(), идут от предка, т. е. её можно просто унаследовать от него.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2017, 20:01

Наследование и виртуальные функции
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstring&gt; using namespace std; #include...

Наследование и виртуальные функции
Всем здарова. Есть пару косяков в коде, но я их не могу найти. Быть может вы найдёте их? Вот код:...

Наследование и виртуальные функции
Получить практические навыки создания иерархии классов и использования статических компонентов...

Наследование и виртуальные функции
⦁ Определить иерархию классов (в соответствии с вариантом). ⦁ Определить в классе...


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

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

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