🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #4793

Pytanko dla "wiedzaczych w C++"

#4793
From: Mateusz M. Korniak
Date: Sat, 23 Jan 1999 12:16
68 lines
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-mail

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.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