Добавьте в классы Конус и Цилиндр функции, которые возвращают тип объекта.Добавьте в классы Конус и Цилиндр функции, которые возвращают тип объекта. Изучите полиморфное поведение функций для расчета объема. Текст программы: #include <conio.h> #include <iostream.h> #include <math.h> // ************** class okr ************* class okr { protected: float r; public: okr (); okr (float xr); ~okr (); void SetR (float rc); float GetR(); float plo (); }; okr::okr() {} okr::okr(float xr) { r=xr;} okr::~okr () {} void okr::SetR (float rc) { r=rc;} float okr::GetR() {return r;} float okr::plo () { return M_PI*r*r; } // ************** class zilindr ************** class zilindr: public okr { protected: float h; public: zilindr (); zilindr (float xr, float xh); ~zilindr (); void SetH (float hc); float GetH(); float ob(); void vivod (); void vvod (); char * ima(); }; zilindr::zilindr() { } zilindr::zilindr (float xr, float xh) : okr (xr) { h=xh; } zilindr::~zilindr () { } void zilindr::SetH (float hc) { h=hc;} float zilindr::GetH(){return h;} float zilindr::ob() { return plo()*h;} void zilindr::vivod () { cout <<"\n"<<"радиус основания "<< r ; cout <<"\n высота "<< h ; } void zilindr::vvod () { float rc; cout <<"\nВведите радиус "; cin >> r ; cout <<"\n высоту "; cin >> h ; } char * zilindr::ima() { return ("Цилиндр");} // ************** class konus **************** class konus: public zilindr { public: konus (); konus (float xr, float xh); ~konus (); float ob(); char * ima(); }; konus::konus() { } konus::konus (float xr, float xh) : zilindr (xr,xh) { } konus::~konus () { } float konus::ob(){ return plo()*h/3;} char * konus::ima() { return ("Конус");} void main() { konus *u; u=new konus; cout <<"\n"<<u->ima()<<" u"; u->vvod(); cout<<"\n\tПлощадь основания "<<u->plo(); cout<<"\n\tОбъем "<<u->ob(); cout <<"\nРассмотрим u как указатель на цилиндр"; cout <<"\n"<<u->zilindr::ima()<<" u"; cout<<"\n\tПлощадь основания "<<u->plo(); cout<<"\n\tОбъем "<<u->zilindr::ob(); cout<<"\n Для выхода - нажмите клавишу"; getch(); }Исполняемый файл pr13_00.exe (упакованный) |