class Drobi
{
public:
	Drobi();				    // конструктор по умолчанию
	Drobi(int,int);             // конструктор с параметрами
	~Drobi();					// деструктор
	Drobi(Drobi &a);			// конструктор копирования
	void setStr(const char*);	// задание строки
	char* getStr();			    // возвращает указатель на тип чар (получение строки)
	int printNum();				// возвращает количество символов в строке str
	
	Drobi Sum(Drobi);			// сложение
	Drobi Dif(Drobi);			// вычитание
	Drobi Mult(Drobi);			// умножение
	Drobi Div(Drobi);			// деление
	Drobi Drobi::operator+(Drobi);		// перегрузка оператора +
	friend Drobi operator-(Drobi,Drobi);		// перегрузка оператора - как дружественная функция
	Drobi operator++();			// перегрузка префиксного инкремента
	Drobi operator++(int);		// перегрузка постфиксного инкремента, добавлен фиктивный аргумент для различия операторов
	void Norm();				// функция сокращения дроби
	static int GCD(int,int);    // нахождение наибольшего общего делителя двух чисел (числителя и знаменателя)
    void PrintNumber();         // печать числа (вывод на экран)
    int getChisl();             // возврат числителя для проверки на нуль при операции деления
	
private:
    int chisl;
	int znam;
	char*  str;			        // выделение памяти под строку 
};
