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

Не выходит перегрузка << и >> - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В одномерном массиве вычислить минимальный по модулю элемент массива http://www.cyberforum.ru/cpp-beginners/thread759888.html
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) минимальный по модулю элемент массива; 2) сумму модулей элементов массива, расположенных после первого элемента, равного нулю....
C++ Можно ли в char поместить больше одной буквы? Вот у меня прога, которая переводит из сантиметров в дюймы и наоборот. В switch нужно ввести 1 букву, чтобы оно определило действие. Возможно ли(и если возможно, то как) сделать, чтобы char принимал... http://www.cyberforum.ru/cpp-beginners/thread759865.html
C++ написать программу которая суммирует матрицы
Напишите программу, которая суммирует матрицы. Размер матриц произвольный. Значения вводятся с клавиатуры
Создать два массива: в одном хранятся чётные элементы исходного, в другом – нечётные C++
3. Написать программу, которая из случайно заполненного массива из 50 элементов создаёт два массива: в одном массиве хранятся чётные элементы, в другом – нечётные. Также необходимо вывести...
C++ Динамически распределение памяти. Матрицы. Найти максимальный ниже побочной диагонали, и минимальный главной диагонали http://www.cyberforum.ru/cpp-beginners/thread759850.html
В матрице n-го порядка найти максимальный среди элементов , лежащих ниже побочной диагонали, и минимальный среди элементов , лежащих выше главной диагонали.
C++ Как выводить в консоль следующим образом Помогите пожалуйста, возможно ли сделать так: В первой строке всегда вводятся какие-то данные пользователем с клавиатуры, причем то, что вводится не выводилось на экран (т.е. сколько бы кнопок он не... подробнее

Показать сообщение отдельно
Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122

Не выходит перегрузка << и >> - C++

12.01.2013, 21:09. Просмотров 316. Ответов 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
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <iostream>
#include <clocale>
 
using namespace std;
 
 
class RightFigure
{
public:
     virtual float sq() = 0;
};
 
class Triangle: public RightFigure
{
    float x;
public:
    Triangle()
    {
        x = 1;
    };
 
    Triangle(float j)
    {
        x = j;
    };  
 
    Triangle(const Triangle& ob)
    {
        x = ob.getX();
    };
 
    float getX() const
    {
        return x;
    };
    
    float sq()
    {
        return ((sqrt(3)*x*x)/4);
    };
 
};
 
class Square: public RightFigure
{
    float x;
public:
    
    Square()
    {
        x = 1;
    };
 
    Square(float j)
    {
        x = j;
    };
 
    Square(const Square& ob)
    {
        x = ob.getX();
    };
 
    float getX() const
    {
        return x;
    };
 
    float sq()
    {
        return x*x;
    };
 
};
 
class Angl : public RightFigure
{
    float x;
public:
 
    Angl()
    {
        x = 1;
    };
 
    Angl(float j)
    {
        x = j;
    };
 
    Angl(const Angl& ob)
    {
        x = ob.getX();
    };
 
    float getX() const
    {
        return x;
    };
 
    float sq()
    {
        return (((sqrt(5)*sqrt(5+2*sqrt(5)) )/4 ) * (x*x));
    };
 
};
 
 
void main()
{
    setlocale(LC_ALL,".1251");
 
    int j=0,k=0;
 
    cout<<"Сколько фигур вы хотите создать? (размеры массива)"<<endl;
    cin>>j;
 
    RightFigure ** arr = new RightFigure * [j];
 
    for(int i=0; i<j; i++)
    {
        cout<<"Выберите тип "<<i+1<<" фигуры:"<<endl;
        cout<<" 1.Треугольник; 2.Квадрат; 3.5тиугольник; "<<endl;
        cin>>k;
        switch(k)
        {
            case 1: arr[i] = new Triangle; break;
            case 2: arr[i] = new Square;   break;
            case 3: arr[i] = new Angl;     break;
        }
 
    };
 
    for(int i=0; i<j; i++)
    {
        cout <<"Площадь: "<< arr[i]->sq() << endl;
    };
 
};
Вроде как всё работает и всё правильно, но как перегрузить << например, чтоб в последнем цикле это использовать - не получается и всё. Подскажите всё ли верно сделал (по поводу наследования и абстрактного класса) и подскажите, если можно с перегрузкой. (книгу смотрел, по примеру - не вышло) (( Заранее благодарю!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru