Я пытаюсь создать круг и прямоугольник из формы класса. Я хочу, чтобы y был назначен pi, если я вызываю конструктор Shape() с параметром (из класса окружения). Поскольку Shape имеет чисто виртуальную функцию, компилятор показывает ошибку. Как я могу преодолеть эту ошибку. И почему параметр по умолчанию работает правильно? Также я попробовал this-> Shape (0) из класса Circle. Компилятор говорит «Неправильное использование этого»Как получить доступ к конструктору родительского класса в C++ с родительским классом, имеющим чистую виртуальную функцию
#include<iostream>
using namespace std;
class Shape
{public:
double x,y;
Shape()
{x=0;y=0;}
Shape(int p,int t=3.14159)
{x=p;y=t;}
virtual void display_area()=0;
virtual void get_data()=0;
};
class Circle: public Shape
{public:
Circle()
{Shape(0);} //ERROR HERE
void get_data()
{cout<<"\nRadius: ";cin>>x;}
void display_area()
{cout<<"\nArea: "<<y*x*x;}
};
Никаких чудес, которые вы не можете исправить код, если он так плохо отформатирован. Правило №1: правильно отформатируйте свой код! – SergeyA
Почему ваш код так плохо отформатирован? Как вы можете это прочитать? –