пиздец

 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
// описание класса Стихотворная форма
class Poemform
{
protected:
char *ftype; // поле тип формы
public:
Poemform() : ftype(NULL) {} // конструктор по умолчанию
Poemform(const Poemform &obj) : ftype(NULL) { set_form(obj.ftype); } // конструктор копирования
virtual ~Poemform() { if (ftype) delete ftype; }; // виртуальный деструктор
// установка формы
void set_form(const char* f)
{
if (ftype) delete ftype;
int len = strlen(f) + 1;
ftype = new char(len);
strcpy_s(ftype, len, f);
}
char* get_form() { return ftype; } // возвращает стих. форму
// возвращает сложнсть формы (1,2,3)
int struct_form()
{
if (strcmp(ftype, "brahikolon") == 0) return 1;
if ((strcmp(ftype, "yamb") == 0) || (strcmp(ftype, "horey") == 0) || (strcmp(ftype, "dibrahey") == 0))
return 2;
if ((strcmp(ftype, "daktil") == 0) || (strcmp(ftype, "amfibrahiy") == 0) || (strcmp(ftype, "tribahiy") == 0))
return 2;
return 0;
}
// перегрузка вывода в поток
friend ostream& operator << (ostream &stream, Poemform &obj)
{
stream << obj.ftype << endl;
return stream;
};
// перегрузка ввода из потока
friend ostream& operator >> (ostream &stream, Poemform &obj)
{
fflush(stream);
fgets(ftype, 40, stream);
return stream;
};
};