Untitled
unknown
c_cpp
10 months ago
1.9 kB
4
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