Untitled
unknown
c_cpp
a year ago
1.9 kB
8
Indexable
#include <iostream>
#include <cmath>
class Ksztalt
{
public:
virtual void Rysuj() = 0;
double Pole()
{
return 0.0;
}
double Pole( double promien )
{
return M_PI * promien * promien;
}
double Pole( double wysokosc, double szerokosc )
{
return wysokosc * szerokosc;
}
};
class Kolo : public Ksztalt
{
private:
double promien;
public:
Kolo( double r ) : promien( r ) {}
void Rysuj() override
{
std::cout << "Rysuj kolo... " << std::endl;
}
double LiczPole()
{
return Pole( promien );
}
};
class Kwadrat : public Ksztalt
{
private:
double bok;
public:
Kwadrat(double b) : bok(b) {}
void Rysuj() override
{
std::cout << "Rysuj kwadrat... " << std::endl;
}
double LiczPole()
{
return Pole( bok, bok );
}
};
class Prostokat : public Ksztalt
{
private:
double szerokosc;
double wysokosc;
public:
Prostokat(double s, double w) : szerokosc(s), wysokosc(w) {}
void Rysuj() override
{
std::cout << "Rysuj prostokat... " << std::endl;
}
double LiczPole()
{
return Pole( wysokosc, szerokosc );
}
};
class Punkt
{
private:
int x;
int y;
public:
Punkt( int xx, int yy ) : x( xx ), y( yy )
{
}
friend class Kolo;
friend class Kwadrat;
};
int main()
{
Kolo kolo(5.0);
Kwadrat kwadrat(4.0);
Prostokat prostokat(3.0, 6.0);
kolo.Rysuj();
std::cout << "Pole kola: " << kolo.LiczPole() << std::endl;
kwadrat.Rysuj();
std::cout << "Pole kwadratu: " << kwadrat.LiczPole() << std::endl;
prostokat.Rysuj();
std::cout << "Pole prostokata: " << prostokat.LiczPole() << std::endl;
return 0;
}
Editor is loading...
Leave a Comment