Article View: pl.comp.objects
Article #4793Pytanko dla "wiedzaczych w C++"
From: Mateusz M. Korniak
Date: Sat, 23 Jan 1999 12:16
Date: Sat, 23 Jan 1999 12:16
68 lines
2459 bytes
2459 bytes
Drobny problem dotyczacy generalizacja i specjalizacji obiektow
Mamy cos takiego:
//--------------------------------------------------------------------------
class GeneralizacjaDanych
{};
class SpecjalizacjaDanych
:public GeneralizacjaDanych
{};
class Generalizacja
{
public:
virtual void akcja(GeneralizacjaDanych & gen)
{ // akcja_generalna(); }
};
class Specjalizacja
:public Generalizacja
{
public:
/* // pozornie zbedna funkcja
virtual void akcja(GeneralizacjaDanych & gen) {
Generalizacja::akcja(gen);
} */
virtual void akcja(SpecjalizacjaDanych & spec)
{
Generalizacja::akcja(spec);
// akcja_specjalizacji();
}
};
void test()
{
GeneralizacjaDanych inst_generalizacji_danych;
SpecjalizacjaDanych inst_specjalizacji_danych;
Specjalizacja inst_specjalizacji;
inst_specjalizacji.akcja(inst_specjalizacji_danych);
//inst_specjalizacji.akcja(inst_generalizacji_danych);
}
//--------------------------------------------------------------------------
No i na moje rozuminie c++ w obrebie klasy Specjalizacja powinny byc
widoczne dwie funkcje
virtual void akcja(SpecjalizacjaDanych & spec)
virtual void akcja(GeneralizacjaDanych & gen)
rozroznialne poprzez argumenty (tj przeciazone).
jednak wywolanie w tescie
inst_specjalizacji.akcja(inst_generalizacji_danych);
jest bledem a sam kompilator (BC++B 1.0) marudzi ze
Specjalizacja::akcja(SpecjalizacjaDanych &) hides virtual function
Generalizacja::akcja(GeneralizacjaDanych &)
wg mnie to troche bez sensu... - gdzie robie blad ?
problem znika po dodaniu (tak jak jest to zaremowane)
virtual void Specjalizacja::akcja(GeneralizacjaDanych & gen)
ale czy to nie powinno byc automatyczne ?
Mateusz M. Korniak
P.S. Prosilbym aby wypowiedzialy sie osoby ktore rzeczywiscie maja cos
do powiedzenia (na ten czy tez inny temat.. ) ;)
Technical Details
Message-ID:
<36A9BDA9.86C1BB08@polsl.gliwice.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.task.gda.pl!polsl.gliwice.pl!not-for-mailShow 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.task.gda.pl!polsl.gliwice.pl!not-for-mail From: "Mateusz M. Korniak" <matkor@polsl.gliwice.pl> Newsgroups: pl.comp.objects Subject: Pytanko dla "wiedzaczych w C++" Date: Sat, 23 Jan 1999 13:16:41 +0100 Organization: ANT. Lines: 69 Message-ID: <36A9BDA9.86C1BB08@polsl.gliwice.pl> NNTP-Posting-Host: websurfer185.silweb.pl Mime-Version: 1.0 X-Mailer: Mozilla 4.06 [en] (Win95; I) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit