Witam. Mam problem z dziedziczeniem w programie z figurami. Konkretnie nie wiem co zrobic z lista argumentów w funkcjach w klasie abstrakcyjnej. Wyskakuje błąd niezależnie od tego czy ograniczam ją do jednego argumentu czy do dwóch. Nie wiem co zrobić. Prosze o pomoc. Oto kod:
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
class figura
{
public:
double a;
double b;
virtual double pole(double a)=0;
virtual double obwod(double a)=0;
};
class kwadrat:public figura
{
public:
double wysokosc;
kwadrat(double a)
{
wysokosc=a;
}
double pole(double a)
{
return a*a;
}
double obwod(double a)
{
return 4*a;
}
};
class prostokat:public kwadrat
{
public:
double szerokosc;
prostokat(double a, double bok2):kwadrat(a)
{
szerokosc=bok2;
}
double pole(double bok1, double bok2)
{
return bok1*bok2;
}
double obwod(double bok1, double bok2)
{
return (2*bok1+2*bok2);
}
};
class kolo:public kwadrat
{
public:
kolo(double a):kwadrat(a)
{
}
double pole(double a)
{
return M_PI*a*a;
}
double obwod(double a)
{
return 2*M_PI*a;
}
};
int main()
{
kwadrat kw(1.0);
kolo kol(1.0);
prostokat pros(1.0,1.0);
figura* wskf;
double r,b,c,d;
cout<<"Ktora figure:"<<endl;
cout<<"1.Kwadrat"<<endl;
cout<<"2.Prostokat"<<endl;
cout<<"3.Kolo"<<endl;
int a;
cin>>a;
switch(a)
{
case 1:
cout<<"Kwadrat "<<endl;
cout<<"podaj bok: "<<endl;
cin>>b;
wskf=&kw;
wskf->pole(b);
wskf->obwod(b);
break;
case 2:
cout<<"Prostokat"<<endl;
cout<<"podaj 2 boki "<<endl;
cin>>c;
cin>>d;
wskf=&pros;
wskf->pole(c,d);
wskf->obwod(c,d);
break;
case 3:
cout<<"Kolo"<<endl;
cout<<"podaj promien: "<<endl;
cin>>r;
wskf=&kol;
wskf->pole(r);
wskf->obwod(r);
break;
}
}
```cpp
```