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

ООП, простейшие классы - C++

Восстановить пароль Регистрация
 
haseki
 Аватар для haseki
2 / 2 / 1
Регистрация: 02.11.2013
Сообщений: 151
28.04.2014, 09:13     ООП, простейшие классы #1
Задачи как таковой нет, просто создание системы классов с открытым наследованием. Классы описывают картинную галерею, методы осуществляют аукцион (продажа по максимальной цене), есть перегрузка оператора потокового вывода.
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
/*///////////////////////////////////////////
ГЛАВНЫЙ ФАЙЛ ПРОГРАММЫ                     //
*////////////////////////////////////////////
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
/*ОПИСАНИЯ КЛАССОВ И ПРОТОТИПЫ МЕТОДОВ*/
 
 
typedef unsigned int ui; //Заменяем имя типа "unsigned int" на более лаконичное "ui".
class Gallery
{
private: //Закрытые элементы класса.
    char* Author; //Автор картины.
    char* Name; //Название картины.
    ui Year; //Год написания.
    char* Style; //Стиль.
 
 
public: //Открытые элементы класса.
    Gallery(void);
    Gallery(char* author, char* name = "", ui year = 0, char* style = "", ui price = 0); //Прототип конструктора (с параметрами по умолчанию).
 
    void setAuthor(char*); //Установить автора.
    char* getAuthor() const; //Считать автора.
    void setName(char*); //Установить название.
    char* getName() const; //Считать название.
    ui getYear() const; //Считать год.
    void setYear(ui); //Установить год.
    void setStyle(char*); //Установить стиль.
    char* getStyle() const; //Считать стиль.
 
 
    ~Gallery(); //Прототип деструктора.
};
 
class Exhibit :public Gallery
{
    ui Price; //Цена билета
public:
 
    void setPrice(ui); //Установить цену билета на выставку.
    ui getPrice() const; //Считать цену билета на выставку.
    void AddPrice(ui); //Увеличить цену.
    void SalePrice(ui); //Скидка на билет.
    Gallery Max_price(Gallery&); //Возвращает объект с максимальной ценой.
};
 
class Trade :public Gallery
{
    ui Stavka; //Цена ставки на картину.
    ui max = 0;
public:
 
    void Auction(ui); //Аукцион.
    friend ostream& operator<<(ostream& os, Trade& tr)
    {
        os << "КАРТИНА: " << endl;
        os << "Автор: " << tr.getAuthor() << "\n";
        os << "Название: " << tr.getName() << "\n";
        os << "Год: " << tr.getYear() << "\n";
        os << "Стиль: " << tr.getStyle() << "\n";
        os << "Цена: " << tr.max << "\n";
        return os;
    }
};
 
//Перегрузка конструкторов:
Gallery::Gallery(void) //Конструктор класса.
{
    Author = "";
    Name = "";
    Year = 0;
    Style = "";
 
}
 
Gallery::Gallery(char* author, char* name, ui year, char* style)
{
    Author = author;
    Name = name;
    Year = year;
    Style = style;
 
}
 
 
Gallery::~Gallery() //Деструктор класса.
{
 
}
 
void Gallery::setAuthor(char* author)
{
    Author = author;
}
 
char* Gallery::getAuthor() const
{
    return Author;
}
 
void Gallery::setName(char* name)
{
    Name = name;
}
 
char* Gallery::getName() const
{
    return Name;
}
 
ui Gallery::getYear() const
{
    return Year;
}
 
void Gallery::setYear(ui y)
{
    if (y > 1000)
        Year = y;
    else
        Year = 0;
 
}
 
void Gallery::setStyle(char* style)
{
    Style = style;
}
 
char* Gallery::getStyle() const
{
    return Style;
}
 
 
void Exhibit::setPrice(ui price)
{
    Price = price;
}
 
ui Exhibit::getPrice() const
{
    return Price;
 
}
 
void Exhibit::AddPrice(ui add)
{
    Price += add;
}
 
void Exhibit::SalePrice(ui sale)
{
    Price -= sale;
}
 
Exhibit Exhibit::Max_price(Exhibit& pic)
{
    if (Price < pic.getPrice())
    {
        return pic;
    }
    else return *this;
}
 
void Trade::Auction(ui stavka)
{
    ui n;
    cout << "Введите количество ставок: ";
    cin >> n;
    for (int i(0); i < n; i++)
    {
        cout << "Введите " << i - 1 << "-ую ставку: ";
        cout << "\n";
        cin >> stavka[i];
    }
    for (int i = 0; i < n; i++)
    {
        if (stavka[i] > max)
            max = stavka[i];
    }
    cout << "Картина продана за " << max << "$" << endl;
}
 
 
int main(int argc, char** argv)
{
    setlocale(LC_ALL, "Russian");
    system("pause");
    return 0;
}
В главном методе еще не созданы объекты, то есть классы и их методы еще не используются. Есть ошибки в описаниях методов (компилятор на них ругается), помогите, пожалуйста, их исправить.

Компилятор показывает ошибки в строках: 81, 162 и 180-185.

И еще - не могу описать деструктор
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2014, 09:13     ООП, простейшие классы
Посмотрите здесь:

C++ ООП Классы
C++ задание по ООП, классы, матрицы
C++ Простейшие классы
C++ ООП. Классы, наследование, векторы
C++ Начало ООП. Классы
ООП классы, перегрузка операторов C++
VS2012 классы, заголовочные файлы, ООП C++
Классы и объекты в ооп и с++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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