Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- using namespace std;
- class Figura
- {
- protected:
- char* nume;
- Figura()
- {
- nume = NULL;
- }
- public:
- Figura(char*x)
- {
- nume = NULL;
- if (x)
- {
- nume = new char[strlen(x) + 1];
- nume = x;
- }
- }
- virtual void afis() = 0;
- ~Figura()
- {
- if (nume)
- {
- delete[]nume;
- }
- }
- };
- class Patrat :public Figura
- {
- protected:
- double latura;
- Patrat() :Figura()
- {
- latura = 0;
- }
- public:
- Patrat(char*nume, double x) :Figura(nume)
- {
- latura = 0;
- if (x)
- {
- latura = x;
- }
- }
- void afis()
- {
- cout << nume << " cu latura de: " << latura << endl;
- }
- };
- class Dreptunghi :public Figura
- {
- protected:
- double lungime;
- double latime;
- Dreptunghi() :Figura()
- {
- lungime = 0;
- latime = 0;
- }
- public:
- Dreptunghi(char*nume, double x, double y) :Figura(nume)
- {
- if (x)
- {
- lungime = x;
- }
- if (y)
- {
- latime = y;
- }
- }
- void afis()
- {
- cout << nume << " cu latime de: " << latime << " si lungime de: " << lungime << endl;
- }
- };
- class Cerc : public Figura
- {
- protected:
- double lungime;
- Cerc() :Figura()
- {
- lungime = 0;
- }
- public:
- Cerc(char*nume, double x) :Figura(nume)
- {
- if (x)
- {
- lungime = x;
- }
- }
- void afis()
- {
- cout << nume << " cu lungime de: " << lungime << endl;
- }
- };
- class Ecran :public Figura
- {
- protected:
- Figura **p;
- int figuri;
- Ecran() :Figura()
- {
- figuri = 0;
- }
- public:
- Ecran(int n, Figura *f[])
- {
- figuri = n;
- p = new Figura*[figuri];
- for (int i = 0; i<figuri; i++)
- {
- p[i] = f[i];
- }
- }
- Ecran(const Ecran &plansa)
- {
- figuri = plansa.figuri;
- p = new Figura*[figuri];
- for (int i = 0; i < figuri; i++)
- {
- p[i] = plansa.p[i];
- }
- }
- void afis()
- {
- cout << "Ecran:" << endl;
- cout << "=======================================" << endl;
- for (int i = 0; i<figuri; i++)
- {
- if (p[i] != 0)
- {
- p[i]->afis();
- }
- }
- cout << endl;
- cout << "=======================================" << endl;
- }
- };
- int main()
- {
- Dreptunghi b("dreptunghi", 23, 56);
- Cerc c("cerc", 34);
- Patrat d("patrat", 45);
- b.afis();
- c.afis();
- d.afis();
- Figura* pobA;
- pobA = &c;
- c.afis();
- Figura *f[] = { &c, &d };
- Ecran x(2, f);
- x.afis();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement