nie tak się nie robi;
jeżeli już to
struct elipsa: figura
{
double pol_os_mala, pol_os_wielka;
double pole = M_PI * (1.5 * (pol_os_mala + pol_os_wielka) - sqrt(pol_os_mala * pol_os_wielka));
};
to się kompiluje, ale i tak to jest ub, i dodatkowo musisz ponownie przeliczyć pole po wprowadzeniu danych;
jak chcesz mieć jakąś watość początkową to musisz mieć też zmienne pozostałe zainicjalizowane;
#include <iostream>
#include <cmath>
using namespace std ;
struct figura
{
};
struct elipsa: figura
{
double pol_os_mala = 3, pol_os_wielka = 4;
double pole = 3.14 * (1.5 * (pol_os_mala + pol_os_wielka) - sqrt(pol_os_mala * pol_os_wielka));
};
int main()
{
elipsa x ;
cout<<x.pole;
}
rozwiazanie, które policzy Ci pole Od razu po inicjalizacji obiektu to np.:
#include <iostream>
#include <cmath>
using namespace std ;
struct figura
{
figura(double val) : pole(val) {}
double pole;
};
struct elipsa : figura
{
elipsa(double x, double y) :
figura(3.14 * (1.5 * (x + y) - sqrt(x * y)))
{}
};
int main()
{
elipsa x(3, 4);
cout<<x.pole;
}