Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не понимаю как работает алгоритм Всем доброго времени суток. Настиг такой вопрос, с которым уже более недели не могу разобраться: искал везде, читал всё, на англоязычном инете ничего полезного не нашел(на русскоязычном вообще ничего... https://www.cyberforum.ru/ cpp-beginners/ thread2492546.html C++ Реализовать функцию, которая принимает массив, а также число n, и возвращает индекс
Реализовать функцию, которая принимает массив (плюс его длину) , а также число n, и возвращает индекс числа в массиве или -1, если такого числа нет. Прототип: int Search (int a , const int n, int...
C++ Перевод указателя на член класса в обычный указатель Добрый день. Есть некоторый API, который принимает обычные указатели на функцию и поэтому при создании приложения на ООП возникает проблема перевода указателя на член класса в обычный указатель. ... https://www.cyberforum.ru/ cpp-beginners/ thread2492518.html C++ Нейронная сеть на c++ Уважаемые форумчане нужна ваша помощь с нейронной сетью на c++! На днях захотел написать прогу - многослойный перцептрон на c++, вроде информации много и пытался менять код, но всё одинаково, прога... https://www.cyberforum.ru/ cpp-beginners/ thread2492504.html
Написать функцию, которая возвращает сумму элементов массива с номерами от left до right C++
Написать функцию, которая принимает массив размера N и целые числа left и right и возвращает сумму элементов массива с номерами от left до right включительно. Задать размерность массива как...
C++ бинарный файл содержащий определенную последовательность нулей и единиц https://www.cyberforum.ru/ cpp-beginners/ thread2492383.html
как мне создать бинраник длиной скажем 6 бит, содержащий соответственно шесть рандомных бит? например 011001. Везде где что находил, там запись побайтово. Записываются определенные типы данных. А...
C++ Отсортировать 3 числа в порядке неубывания ( #define swap ) https://www.cyberforum.ru/ cpp-beginners/ thread2492375.html
Всем привет, возможно ли через #define сделать что-то подобное? #define SWAP(x,y,z) ( if ( y > z ) swap(y,z); if ( x > y ) swap(x,y); if (y > z) swap(y,z)) Чтобы не писать постоянно в main...
Класс, как сделать публичную функцию которая содержала бы приватные? C++
Как сделать в классе публичную функцию, которая бы содержала приватные функции? Давайте посмотрим на публичную функцию enter() (строка 4 и 23). Она выполняет строку 27 и на этом заканчивается. Что...
C++ Хочу научиться делать читы и совершенствоваться! https://www.cyberforum.ru/ cpp-beginners/ thread2492187.html
знаю основы с++, но есть немного того, чего не понял. хочу научиться использовать хуки, работать с памятью процессора... Кто может стать моим наставником?
C++ Выделение блока памяти нулевого размера Каков результат оператора type* ptr = new type;? https://www.cyberforum.ru/ cpp-beginners/ thread2492186.html
Реализация функции swap_min C++
Здравствуйте, пытаюсь решить на степике следующую задачу: Реализуйте функцию swap_min, которая принимает на вход двумерный массив целых чисел, ищет в этом массиве строку, содержащую наименьшее среди...
C++ Проблема с умным указателем std::unique_ptr https://www.cyberforum.ru/ cpp-beginners/ thread2492115.html
здравствуйте. есть задание - написать небольшую простенькую игру, где есть базовый класс Unit, кроме него есть ещё три класса - Swordsman(мечник), Archer(лучник), Mage(маг), которые наследуются от...
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 200
0

Как напечатать enum class? - C++ - Ответ 13780175

20.08.2019, 04:48. Показов 533. Ответов 1
Метки (Все метки)

Как напечатать enum class? Enum class находится в интерфейсе строка 5. Мне нужно чтобы напечаталось допустим Magical_Realism. Функция которая печатет находится в реализации 191 строка.

https://ibb.co/mvwsF2P вот что получается при компиляции.

Я еще пробовал сделать по другому строка 15 в интерфейсе и строка 216 в реализации, но тоже не пошло

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
//интерфейс
#pragma once
#include <Header.h>
 
enum class Genre {
    Magical_Realism=1, History, Fantasy, Romance, Horror_Triller, Competitiv_Sports, Sci_fi, Eastern_Fantasy, Video_Games, ACG, Realistic_Fiction, War_Military, Martial_Arts
};
 
class Book
{
public:
    void enter();
    string name() const { return p_name; }
    string author() const { return p_author; }
    //string genre() const;
    Genre genre() const { return p_genre; };
    string ISBN() const { return p_ISBN; }
    string Date() const { return p_Date; }
    bool in_stock() const { return p_in_stock; }
private:
    string p_name{ "123" };
    string p_author{ "123" };
    Genre p_genre{ Genre::Magical_Realism };
    string p_ISBN{ "123" };
    string p_Date{ "123" };
    bool p_in_stock{ true };
    void en_name();
    void en_author();
    void en_genre();
    void en_ISBN();
    void en_Date();
    void en_in_stock();
};
 
bool operator==(const Book& a, const Book& b);
bool operator!=(const Book& a, const Book& b);
ostream& operator<<(ostream& os, const Book& b);
Genre int_to_genre(int i);
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
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
//реализация
#include <Book.h>
 
string p_name;
string p_author;
Genre p_genre;
string p_ISBN;
string p_Date;
bool p_in_stock;
 
void Book::enter()
{
    try
    {
        cout << "Функция добавления книги в библиотеку.\n";
        en_name();
        en_author();
        en_genre();
        en_ISBN();
        en_Date();
        en_in_stock();
        return;
    }
    catch (exception& e) {
        cerr << "exception: " << e.what() << endl;
        keep_window_open();
        return;
    }
}
 
void Book::en_name()
{
    cout << "Введите название книги.\n";
    string title;
    while (cin) {
        string s;
        char ch;
        cin >> s;
        title += s;
        cin.get(ch);
        if (ch == '\n')
        {
            p_name = title;
            return;
        }
        if (isspace(ch))
            title += ' ';
        cin.unget();
    }
}
 
void Book::en_author()
{
    cout << "Введите автора книги.\n";
    string creator;
    while (cin) {
        string s;
        char ch;
        cin >> s;
        creator += s;
        cin.get(ch);
        if (ch == '\n')
        {
            p_author = creator;
            return;
        }
        if (isspace(ch))
            creator += ' ';
        cin.unget();
    }
}
 
void Book::en_ISBN()
{
    cout << "Введите код ISBN книги.\n"
        << "В формате n-n-n-x, где n - целое число, x - цифра или буква\n";
    string code;
    int check = 0;      //счетчик чтобы считать 3 '-'
    while (cin) {
        char ch;
        if (check < 3)
        {
            cin.get(ch);
            if (isdigit(ch))
            {
                cin.unget();
                int i;
                cin >> i;
                code += to_string(i);
            }
            else
                error("ISBN введен неверно");
        }
        cin.get(ch);
        if (ch == '-')
        {
            code += '-';
            check++;
        }
        else if (isalpha(ch) && check == 3)
        {
            code += ch;
            p_ISBN = code;
            return;
        }
        else if (isdigit(ch) && check == 3)
        {
            code += ch;
            p_ISBN = code;
            return;
        }
        else
            error("ISBN введен неверно");
    }
}
 
void Book::en_Date()
{
    cout << "Введите дату регистрации авторских прав.\n"
        << "В формате dd.mm.yyyy\n";
    string time;
    int check = 0;  //счетчик чтобы считать 2 '.'
    cin.clear();
    while (cin.get() != '\n');
    while (cin)
    {
        char ch;
        cin.get(ch);
        if (isdigit(ch))
        {
            cin.unget();
            int i;
            cin >> i;
            if (check == 0 && (i < 1 || i > 31))
                error("День введен неверно.");
            if (check == 1 && (i < 1 || i > 12))
                error("Месяц введен неверно.");
            if (check == 2 && i < 0)
                error("Год введен неверно.");
            time += to_string(i);
        }
        else
            error("Дата введена неверно.");
        cin.get(ch);
        if (ch == '\n')
        {
            p_Date = time;
            return;
        }
        else if (ch == '.')
        {
            time += '.';
            check++;
        }
        else
            error("Дата введена неверно.");
    }
}
 
void Book::en_in_stock()
{
    cout << "Книга находится в библиотеке?\n" << "y - да/n - нет\n";
    char ch;
    cin >> ch;
    switch (ch)
    {
    case('y'):
        p_in_stock = true;
        return;
    case('n'):
        p_in_stock = false;
        return;
    default:
        error("Неизвестный ответ");
    }
}
 
bool operator==(const Book& a, const Book& b)
{
    if (a.ISBN() == b.ISBN())
        return true;
    else
        return false;
}
 
bool operator!=(const Book& a, const Book& b)
{
    return !(a == b);
}
 
ostream& operator<<(ostream& os, const Book& b)     //печатает название книги, автора, код isbn
{
    return os << endl << b.name() << endl << b.author()
        << endl << b.ISBN() << endl << b.genre() << endl;
}
 
Genre int_to_genre(int i)
{
    if (i < int(Genre::Magical_Realism) || int(Genre::Martial_Arts) < i)
        error("Жанр указан неверно.\n");
    return Genre(i);
}
 
void Book::en_genre()
{
    cout << "Введите число указывающее на жанр книги.\n"
        << "Magical_Realism - 1, History - 2, Fantasy - 3, Romance - 4, Horror_Triller - 5\n"
        << "Competitiv_Sports - 6, Sci_fi - 7, Eastern_Fantasy - 8, Video_Games - 9, ACG - 10\n"
        << "Realistic_Fiction - 11, War_Military - 12, Martial_Arts - 13\n";
    int i;
    cin >> i;
    p_genre = int_to_genre(i);
    return;
}
 
/*const string Book::genre()
{
    string s;
    if (int(p_genre) == 1)
        s = "Magical_Realism";
    if (int(p_genre) == 2)
        s = "History";
    if (int(p_genre) == 3)
        s = "Fantasy";
    if (int(p_genre) == 4)
        s = "Romance";
    if (int(p_genre) == 5)
        s = "Horror_Triller";
    if (int(p_genre) == 6)
        s = "Competitiv_Sports";
    if (int(p_genre) == 7)
        s = "Sci_fi";
    if (int(p_genre) == 8)
        s = "Eastern_Fantasy";
    if (int(p_genre) == 9)
        s = "Video_Games";
    if (int(p_genre) == 10)
        s = "ACG";
    if (int(p_genre) == 11)
        s = "Realistic_Fiction";
    if (int(p_genre) == 12)
        s = "War_Military";
    if (int(p_genre) == 13)
        s = "Martial_Arts";
    return s;
}*/
Добавлено через 44 минуты
Не актуально

Вернуться к обсуждению:
Как напечатать enum class? C++
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2019, 04:48
Готовые ответы и решения:

enum и class как составляющие другого class
Как организовать ввод enuma с клавиатуры (51-я строка)? Как прикрепить класс date к employee в...

Сравнение enum class
Добрый вечер, подскажите, что его не устраивает? enum class Type { A, B, C, };

Реализация enum class
Привет всем! У меня тут одна проблема, не могу внедрить enum class свой код. Вот оригинальный...

Перегрузка оператора присвоения в enum class
Всем доброго дня. Есть enum: typedef unsigned char byte; enum class MyEnum : byte { A,...

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2019, 04:48

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

Перегрузка оператора ++ для enum class
Доброго времени суток. Имеется перечисление: enum class Month { jan = 1, feb, mar, apr, may,...

Написать функцию перегрузки оператора инкремента для увеличения переменной типа enum class
Доброго времени суток. Есть перечисление. enum class Month { jan = 1, feb, mar, apr, may,...

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int')
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i !=...

Как вызвать функцию class A, из функции class B
Как вызвать функцию class A, из функции class B К примеру Class A{ public: int a,b; void...

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