Article View: pl.comp.objects
Article #4800Re: Pytanko dla "wiedzaczych w C++"
From: Sektor van Skijlen
Date: Wed, 27 Jan 1999 17:31
Date: Wed, 27 Jan 1999 17:31
49 lines
3362 bytes
3362 bytes
W ostatnim odcinku, A. Hajderek naskrobal: :>To znaczy, ze normalne metody po dziedziczeniu mozna przeciazac. Ulatwia to :>tworzenie wielometod (na razie niestety w hierarchii zamknietej). : Prosze podac przyklad i wyjasnic stosowana terminologie, wzglednie : podac odnosniki do wlasciwej literatury, poniewaz to co pan pisze ani nie : wiele wnosi do dyskusji, ani odpowiada na pytanie. : [Wirtualnosc funkcji nie ma wplywu na fakt przeslaniania nazwy funkcji. : Program kolegi Mateusza nie skompiluje sie bez wzgledu na to : czy funkcje beda wirtualne czy nie.] Nie chce mi sie myslec nad odpowiednim programem, wiec odsylam do literatury: Bjarne Stroustrup "Projektowanie i rozwoj jezyka C++". Co do wnoszenia tego do dyskusji - wielometody sa funkcjami wirtualnymi o roznych parametrach i tych samych nazwach, ale wywolywanymi na podstawie dwoch obiektow - sadze wiec, ze to dobry przyklad przeciazania metod wirtualnych. Wyjasnienia moze zadac okreslenie "hierarcha zamknieta". Otoz przy tworzeniu projektu, zakladamy jakas klase bazowa i jakies klasy pochodne. Jesli w przyszlosci postanowimy to rozbudowac o dodatkowe klasy pochodne, to trzeba zrobic rozne modyfikacje. Hierarchia otwarta jest wtedy, jesli klasa bazowa nic nie wie o klasach pochodnych. W takiej sytuacji po prostu dopisujemy nowe klasy nie modyfikujac nic w klasie bazowej; tego uzywa sie najczesciej (na 100% w bibliotekach). Sytuacja jest o wiele latwiejsza, bo mozemy sobie pewien kod "zaklepac" jako nie wymagajacy w zadnym przypadku modyfikacji (przy korzystaniu z bibliotek jest to jedyne wlasciwe podejscie; grzebanie w bibliotece nie jest dobrym pomyslem, o czym mowilismy). Hierarcha zamknieta zas, polega na tym, ze klasa bazowa posiada wszystkie informacje o dziedziczacych po niej klasach pochodnych. Taka klasa bazowa jest niemozliwa do dalszego dziedziczenia; wszystkie te klasy istnieja w jakby "zamknietym" srodowisku - dopisanie nowej klasy wymaga zawsze zmodyfikowania (czesto dosc powaznego) klasy bazowej. Hierarchii zamknietej nalezy mozliwie unikac, niestety tylko w takiej hierarchii mozna zaimplementowac wielometody (wszystko, wraz z dobrym przykladem jest pokazane w w/w ksiazce). Wyjasnilem to wszystko, gdyz w ksiazce nie zostaly uzyte pojecia hierarchii otwartej i zamknietej. -- [- Ben a dar van dijn vijt -] Michal 'Sektor' Malecki <mmalecki@technologist.com> Politechnika Lodzka, Elektrotechnika/Informatyka st.
Technical Details
Message-ID:
<78nii4$b23$5@polonez.man.lodz.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!news.man.poznan.pl!news.man.lodz.pl!not-for-mailReferences:
<36A9BDA9.86C1BB08@polsl.gliwice.pl> <917268718.4807.0.nnrp-09.c2d9616c@news.demon.co.uk> <36AE5059.65664227@polsl.gliwice.pl> <78kasq$3ds$2@polonez.man.lodz.pl> <917356490.28287.0.nnrp-03.c2d9616c@news.demon.co.uk> <78kmau$abm$2@polonez.man.lodz.pl> <917368660.3898.0.nnrp-03.c2d9616c@news.demon.co.uk>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!news.man.poznan.pl!news.man.lodz.pl!not-for-mail
From: Sektor van Skijlen <sektor@spam.org>
Newsgroups: pl.comp.objects
Subject: Re: Pytanko dla "wiedzaczych w C++"
Date: 27 Jan 1999 17:31:48 GMT
Lines: 49
Message-ID: <78nii4$b23$5@polonez.man.lodz.pl>
References: <36A9BDA9.86C1BB08@polsl.gliwice.pl> <917268718.4807.0.nnrp-09.c2d9616c@news.demon.co.uk> <36AE5059.65664227@polsl.gliwice.pl> <78kasq$3ds$2@polonez.man.lodz.pl> <917356490.28287.0.nnrp-03.c2d9616c@news.demon.co.uk> <78kmau$abm$2@polonez.man.lodz.pl> <917368660.3898.0.nnrp-03.c2d9616c@news.demon.co.uk>
NNTP-Posting-Host: zly.kis.p.lodz.pl
User-Agent: tin/pre-1.4-981225 ("Volcane") (UNIX) (SunOS/5.5.1 (i86pc))
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit