Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- const double PI = 3.14159;
- class Figura
- {
- public:
- Figura() {}
- virtual double obwod() = 0;
- virtual double pole() = 0;
- virtual void show() = 0;
- };
- class Kolo : public Figura
- {
- double promien;
- public:
- Kolo(double r) : Figura(), promien(r) {}
- double obwod() { return 2 * PI * promien; }
- double pole() { return PI * promien * promien; }
- void show() { cout << "Kolo o promieniu " << promien << " ma pole " << pole() << endl; }
- };
- class Prostokat : public Figura
- {
- private: // pola prywatne
- int b;
- string kolor_b;
- protected: // pola chronione (są przekazywane do klas pochodnych)
- int a;
- string kolor_a;
- float powierzchnia;
- public: // metody publiczne
- Prostokat(); // konstruktor domyślny (pusty)
- Prostokat(int t_a, int t_b, string t_kolor_a, string t_kolor_b);
- Prostokat(int t_a, string t_kolor_a);
- virtual double obwod() { return 2 * (a + b); }
- double pole() { return powierzchnia; }
- virtual void show();
- };
- Prostokat::Prostokat() : Figura(), a(1), b(1), kolor_a("czarny"), kolor_b("czarny"), powierzchnia(1) {}
- Prostokat::Prostokat(int t_a, int t_b, string t_kolor_a, string t_kolor_b) : Figura(), a(t_a), b(t_b), kolor_a(t_kolor_a), kolor_b(t_kolor_b), powierzchnia(t_a * t_b) {}
- Prostokat::Prostokat(int t_a, string t_kolor_a) : Figura(), a(t_a), b(t_a), kolor_a(t_kolor_a), kolor_b(t_kolor_a), powierzchnia(t_a * t_a) {}
- void Prostokat::show()
- {
- cout << "Prostokat o bokach dlugosci " << a << " i " << b << " w kolorach " << kolor_a << " i " << kolor_b << " o powierzchni " << powierzchnia << endl;
- }
- class Kwadrat : public Prostokat
- {
- /*pola dziedziczone od klasy Prostokat:
- protected: // pola chronione (są przekazywane do klas pochodnych)
- int a;
- string kolor_a;
- float powierzchnia;*/
- public:
- Kwadrat() : Prostokat() {}
- Kwadrat(int bok) : Prostokat(bok, "czarny") {}
- double obwod() { return 4 * a; }
- void show() { cout << "kwadrat o boku " << a << " i powierzchni " << pole() << endl; }
- };
- int main()
- {
- Figura* tab[7];
- for (short i = 0; i < 3; ++i)
- tab[i] = new Prostokat;
- for (short i = 3; i < 6; ++i)
- tab[i] = new Kolo(i);
- tab[6] = new Kwadrat(3);
- for (short i = 0; i < 7; ++i)
- tab[i]->show();
- for (short i = 0; i < 7; ++i)
- delete tab[i];
- return 0;
- }
Add Comment
Please, Sign In to add comment