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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Размер строки указателя http://www.cyberforum.ru/cpp-beginners/thread1159788.html
char *str = new char ; str = "123"; sizeof(str) - отображает размер указателя, а как вывести размер самой строки строки?
C++ Найти средний балл помогите прошу надо найти средний балл города минск только на С++ http://www.cyberforum.ru/cpp-beginners/thread1159760.html
Проверить работу условных операторов C++
Здравствуйте в программе необходим вычислить z={(a-b+c)+min(a,b), a-b>7; min (a,b)/b, a-b<7; max (a,b), a-b =7. Переменная Z должна принимать действиельные значения, если выражение (Ац ИЛИ Вц) И (Фц ИЛИ Сц) не равно нулю, и целое значение в противном случае. Через Ац, Вц и Сц обозначены целые чисти значений a,b,c. Значения а, b,c ввести с клавиатуры. Вот сам код, но я немогу понять как...
C++ Ввод предложения с консоли
Здравствуйте, как в 7 строке сделать самостоятельный ввод текста. #include <iostream> #include <string> using namespace std; int main(){ string str = "I need insert a few spaces in this string."; int a = 60; int d;
C++ Даны строки s, s0. Найти количество вхождений строки s0 в строку s http://www.cyberforum.ru/cpp-beginners/thread1159708.html
Даны строки s, s0. Найти количество вхождений строки s0 в строку s.
C++ Даны две строки: S и S0. Определить количество вхождений строки S0 в строку S Даны две строки: S и S0. Определить количество вхождений строки S0 в строку S. подробнее

Показать сообщение отдельно
haseki
3 / 3 / 1
Регистрация: 02.11.2013
Сообщений: 162

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

28.04.2014, 09:13. Просмотров 199. Ответов 0
Метки (Все метки)

Задачи как таковой нет, просто создание системы классов с открытым наследованием. Классы описывают картинную галерею, методы осуществляют аукцион (продажа по максимальной цене), есть перегрузка оператора потокового вывода.
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.

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