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

Работа с классами и перегрузка операций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ проблема со структурой и функциями http://www.cyberforum.ru/cpp-beginners/thread573583.html
Задание: 1. Описать структуру с именем ZNAK, содержащую следующие поля: • фамилия, имя; • знак Зодиака; • день рождения (массив из трех чисел). 2. Написать программу, выполняющую следующие...
C++ компилятор во всех задачах постоянно выдаёт одну и ту же ошибку. Что делать? компилятор во всех задачах постоянно выдаёт одну и ту же ошибку (даже если задача решена правильно). Что делать? Deleting intermediate files and output files for project '65 - Win32 Debug'.... http://www.cyberforum.ru/cpp-beginners/thread573575.html
Не получается создать структуры – список сеансов кинотеатра C++
Доброго времени суток! Помогите пожалуйста составить программу к задаче: Создать массив, элементами которого являются структуры – список сеансов кинотеатра (название фильма, время начала,...
C++ Не получается создать структуры – список работников фирмы
Доброго времени суток! Помогите пожалуйста составить программу к задаче: Создать массив, элементами которого являются структуры – список работников фирмы (фамилия, должность, стаж, зарплата)....
C++ Не получается создать структуры – заказы магазина http://www.cyberforum.ru/cpp-beginners/thread573561.html
Доброго времени суток! Помогите пожалуйста составить программу к задаче: Создать массив, элементами которого являются структуры – заказы магазина (фамилия клиента, товар, стоимость, адрес). Создать...
C++ Массив структур "Абонент" Доброго времени суток! Помогите пожалуйста составить программу к задаче: Создать массив, элементами которого являются структуры – список телефонов (номер, фамилия абонента, адрес). Создать функцию,... подробнее

Показать сообщение отдельно
IIe4eNbku
8 / 8 / 0
Регистрация: 06.12.2011
Сообщений: 76

Работа с классами и перегрузка операций - C++

13.05.2012, 22:19. Просмотров 863. Ответов 12
Метки (Все метки)

Доброго времени суток, форумчане.
Есть вот такое задание:
1. Класс "прямоугольник": координаты верхнего левого и нижнего правого углов, порядковый номер.
2. Потомки: "ромб"(длина второй диагонали) и "круг" (центр - первые две координаты, диаметр - диагональ прямоугольника). В базовом и производных классах определить функцию draw().
3. Перегрузить унарную операцию "--" - как уменьшение на 1 размера фигуры, бинарную C = A + B - как дублирование в С объекта А с увеличением диагонали на размер диагонали В
Вот с этим самым 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<math.h>
#pragma hdrstop
#pragma argsused
 
class Rectangle
{
        private:
        int num;
        public:
        float x1,x2,y1,y2;
 
        Rectangle(){}
        Rectangle(float _x1,float _y1,float _x2,float _y2,int _num)
        {
                x1 = _x1;
                y1= _y1;
                x2 = _x2;
                y2 = _y2;
                num = _num;
        }
        void draw();
        void operator--()
        {
                --x2;
                --y2;
        }
};
 
//---------------------------------------------------------------------------
class Romb : public Rectangle
{
private:
        float SecondDiag;
public:
        Romb(Rectangle R1, float _SecondDiag)
        {
                x1 = R1.x1;
                y1 = R1.y1;
                x2 = R1.x2;
                y2 = R1.y2;
                SecondDiag = _SecondDiag;
 
        }
        void draw();
        void operator--()
        {
                --SecondDiag;
        }
 };
 
 class Circle : public Rectangle
 {
 public:
        float X;
        float Y;
        float D;
        double n,m;
        Circle(){}
        Circle(Rectangle R1)
        {
                X = R1.x1;
                Y = R1.y1;
                n = pow((R1.x2-R1.x1),2);
                m = pow((R1.y2 - R1.y1),2);
                D = sqrt(n+m);
        }
        void draw();
        void operator--()
        {
                --D;
        }
 
 };
 
        void Rectangle::draw()
        {
                printf("Rectangle \n\n");
                printf("Koordinati pervou to4ki\n");
                cout<<"x = "<<x1<<endl;
                cout<<"y = "<<y1<<endl;
                printf("Koordinati vtorou to4ki\n");
                cout<<"x = "<<x2<<endl;
                cout<<"y = "<<y2<<endl;
                cout<<"Porjadkoviu nomer= "<<num<<"\n\n"<<endl;
 
        }
        void Romb::draw()
        {
                printf("Romb\n\n");
                cout<<"Vtoraja diagonal'= "<<SecondDiag<<endl<<endl;
 
        }
        void Circle::draw()
        {
                printf("CIRCLE\n\n");
                printf("koordinaty centra \n");
                cout<<"X= "<<X<<endl;
                cout<<"Y= "<<Y<<"\n"<<endl;
                cout<<"Diametr= "<<D<<endl;
 
        }
и
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
#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#pragma hdrstop
#pragma argsused
#include "H:\Lab4cpp\Rectangle.h"
//---------------------------------------------------------------------------
 
int main(int argc,char* argv[])
{
         Rectangle R1(4,1,15,10,1);
         R1.draw();
         Romb R2(R1,5);
         R2.draw();
         Circle C1(R1);
         C1.draw();
         --R1;
         printf("-- Rectangle\n\n");
         R1.draw();
         printf(" -- Romb\n\n");
         --R2;
         R2.draw();
         printf(" -- Circle\n\n");
         --C1;
         C1.draw();
 
         getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.