12.07.2015 Views

Lista dwukierunkowa -- przyklad zastosowania destruktora ...

Lista dwukierunkowa -- przyklad zastosowania destruktora ...

Lista dwukierunkowa -- przyklad zastosowania destruktora ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Lista</strong> z wirtualnym destruktorem3class WirElementListy { //public:. . .virtual ∼ WirElementListy( );. . .}; //class WirZarzadcaListy { //public:. . .virtual ∼ WirZarzadcaListy( );. . .}; //Jeżeli przewidywane jest użycie danej klasy jako klasy bazowej oraz konieczna będzie destrukcjacałego obiektu klasy pochodnej z wykorzystaniem wskaźnika do podobiektu wspomnianej klasy bazowej,to destruktory tej klas powinny być <strong>destruktora</strong>mi wirtualnymi.<strong>Lista</strong> <strong>dwukierunkowa</strong> – przykład <strong>zastosowania</strong> <strong>destruktora</strong> wirtualnego


5Modelowanie wieloboku (cz. 1)class Wektor { //float x, y;public :Wektor(float x = 0, float y = 0): x(x), y(y) { }const float &x() const { return x; }}; //. . .class Wierzcholek: public Wektor, public WirElementListy { //public :Wierzcholek(float x, float y): Wektor(x,y) { }}; //class Wielobok: public WirZarzadcaListy { //public :void DodajWierzcholek( float x, float y );{ DodajNaPoczatek(new Wierzcholek(x,y)); }}; //Wykorzystujac ˛ wcześniej zdefiniowane klasy poprzez dziedziczenie możemy w miarę prosty sposóbbudować struktury bardziej złożone. Wada˛przedstawionej konstrukcji jest to, że odsyłacze w liściewskazuja˛na obiekty składowe rzeczywistych elementów kolejki<strong>Lista</strong> <strong>dwukierunkowa</strong> – przykład <strong>zastosowania</strong> <strong>destruktora</strong> wirtualnego


6Modelowanie wieloboku (cz. 2)int main( ){Wielobok Wk;Wk.DodajWierzcholek(1,1);Wk.DodajWierzcholek(2,2);Wk.DodajWierzcholek(3,3);Wierzcholek ∗wWierz;}for ( WirElementListy ∗wElem = Wk. Glowa; wElem; wElem = wElem–> Naste ) {wWierz = static cast(wElem);cout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!