1. Описать шаблон класса АТД: "Участник очереди на печать издания:
фамилия, телефон, количество страниц"
2. Определить и реализовать в шаблоне класса конструкторы, деструкторы, функции Input (ввод с клавиатуры) и Print (вывод на экран),
перегрузить операцию присваивания.
3. Предусмотреть генерацию и обработку двух исключений для возможных ошибок. Ситуации, которые могут привести к генерации исключений смоделировать самостоятельно.
4. Показать использование созданного класса, включая ситуации, приводящие к генерации исключений.
Показать инстанцирование шаблона для типов int, double.
Не понятно как перегрузить операцию присвоения, и как подставить в шаблон int и double если там должна быть строка.
Да и в целом не сильно разобрался с ООП, прошу помощи в исправлении данной программы. То что написано:
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
template <class t_name, class t_tel, class t_count>
class OCHERED {
private:
t_name name;
t_tel tel;
t_count count;
public:
OCHERED () {}
OCHERED (t_name t1, t_tel t2, t_count t3) {name = t1; tel = t2; count = t3}
void Input() {
cout << "Фамилия: "; cin >> name;
cout << "Номер телефона: "; cin >> tel;
cout << "Количество страниц: "; cin >> count;
try
{
if(count <= 0) throw "Количество страниц не может быть 0 или меньше";
}
catch(const char* s)
{
cout << endl << s << endl;
Input();
}
}
void Print(){
cout << "Фамилия: " << name << endl;
cout << "Номер телефона: " << tel << endl;
cout << "Количество страниц: " << count << endl;
}
};
int main()
{
setlocale(0,""); //поддержка кирилицы
OCHERED<string,string,int> obj;
obj.Input();
obj.Print();
_getch();
return 0;
}