// employ2.cpp // несколько уровней наследования #include using namespace std; const int LEN = 80; /////////////////////////////////////////////////////////// class employee // некий сотрудник { private: char name[ LEN ]; // имя сотрудника unsigned long number; // номер сотрудника public: void getdata ( ) { cout << "\n Введите фамилию: "; cin >> name; cout << " Введите номер: "; cin >> number; } void putdata ( ) const { cout << "\n Фамилия: " << name; cout << "\n Номер: " << number; } }; /////////////////////////////////////////////////////////// class manager : public employee // менеджер { private: char title[ LEN ]; // должность, например вице-президент double dues; // сумма взносов в гольф-клуб public: void getdata ( ) { employee::getdata ( ); cout << " Введите должность: "; cin >> title; cout << " Введите сумму взносов в гольф-клуб: "; cin >> dues; } void putdata ( ) const { employee::putdata ( ); cout << "\n Должность: " << title; cout << "\n Сумма взносов в гольф-клуб: " << dues; } } /////////////////////////////////////////////////////////// class scientist : public employee // ученый { private: int pubs; // количество публикаций public: void getdata ( ) { employee::getdata ( ); cout << " Введите количество публикаций: "; cin >> pubs; } void putdata ( ) const { employee::putdata ( ); cout << "\n Количество публикаций: " << pubs; } }; /////////////////////////////////////////////////////////// class laborer : public employee // рабочий { }; /////////////////////////////////////////////////////////// class foreman : public laborer // бригадир { private: float quotas; // норма выработки public: void getdata ( ) { laborer::getdata ( ); cout << " Введите норму выработки: "; cin >> quotas; } void putdata ( ) const { laborer::putdata ( ); cout << "\n Норматив: " << qoutas; } }; /////////////////////////////////////////////////////////// int main ( ) { laborer l1; foreman f1; // введем информацию о нескольких сотрудниках cout << endl; cout << "\nВвод информации о первом рабочем"; l1.getdata ( ); cout << "\nВвод информации о первом бригадире"; f1.getdata ( ); // выведем полученную информацию на экран cout << endl; cout << "\nИнформация о первом рабочем"; l1.putdata ( ); cout << "\nИнформация о первом бригадире"; f1.putdata ( ); cout << endl; return 0; }