Ниже приведен код работы с произвольными ошибка:'форма' является недоступной базы 'аналогичная ошибка круг' для 'прямоугольника' и 'треугольник' класса. Как устранить эту ошибку?
создание членов: x, y класса
shape
публичное от защищенного. Но ничего не вышло! Не удалось выяснить причину ошибки. Пожалуйста, помогите.Что я уже пробовал:
#include<iostream> using namespace std; class shape { protected: int x,y; float ar; public: virtual void cal_area()=0; virtual void get()=0; }; class circle:shape { public: void get() { cout<<"\nenter radius\n"; cin>>x; } void cal_area() { ar=3.14*x*x; cout<<"\narea of circle="<<ar; } }; class triangle:shape { public: void get() { cout<<"\nenter base and height\n"; cin>>x>>y; } void cal_area() { ar=(float)1/2*x*y; cout<<"\narea of triangle="<<ar; } }; class rect:shape { public: void get() { cout<<"\nenter length and width\n"; cin>>x>>y; } void cal_area() { ar=x*y; cout<<"\narea of rectangle="<<ar; } }; int main() { circle c1; triangle t1; rect r1; /*c1.get(); t1.get(); r1.get();*/ shape *sp; sp=&c1; sp->get(); sp->cal_area(); sp=&t1; sp->get(); sp->cal_area(); sp=&r1; sp->get(); sp->cal_area(); return 0; }