#include <iostream>
using namespace std;
const int LEN = 80;
class instrument{
private:
char name[LEN];
char prois[LEN];
char type[LEN];
public:
virtual void get_name() {
cout << "Инструмент\n";
}
void getdata() {
cout << "\n Введите фамилию владельца инструмента: "; cin >> name;
cout << "\n Производитель инструмента: "; cin >> prois;
}
void putdata() const {
cout << "\n Фамилия: " << name;
cout << "\n Производитель инструмента: " << prois;
}
};
class Kick : public instrument{
void get_name() {
cout << "Ударный\n";
}
};
class String : public instrument{
private:
int kolvo; // кол-во струн
public:
void get_name() {
cout << "Струнный\n";
}
void getdata(){
instrument::getdata();
cout << "\n Количество струн: "; cin >> kolvo;
}
void putdata() const {
instrument::putdata();
cout << "\n Количество струн: " << kolvo;
}
};
class Horn : public instrument{
private:
char lenghtcanal[LEN]; // длина канала
public:
void get_name() {
cout << "Духовой\n";
}
void getdata(){
instrument::getdata();
cout << "\n Длина канала духового инструмента: "; cin >> lenghtcanal;
}
void putdata() const {
instrument::putdata();
cout << "\n Длина канала духового инструмента: " << lenghtcanal;
}
};
int main(){
instrument* o[2];//массив указателей
o[0] = new Horn();//создаём объект
o[1] = new String();
o[0]->get_name();
o[1]->get_name();
int n,choice;
cout << "Введите размер оркестра";
cin >> n;
instrument** orc = new instrument*[n];
for (int i = 0; i < n; i++)
{
cout << "Выберите тип инструмента:\n1-Ударный\n2-струнный\n3-духовой"<<endl;
cin >> choice;
switch (choice){
case 1:orc[i] = new Kick();
orc[i]->get_name();
break;
case 2:orc[i] = new String();
orc[i]->get_name();
break;
case 3:orc[i] = new Horn();
orc[i]->get_name();
break;
}
}
return 0;
}