C++ konstruktor a virtualni metoda

Horak Daniel horak na sit.plzen-city.cz
Pondělí Prosinec 6 15:41:06 CET 1999


Ahoj,

pri praci na knihovne pro wxWindows/GTK jsem narazil na nasledujici problem:
pri pokusu volat z konstruktoru virtualni metodu se zavola metoda ne z
potomka, ale rodicova, i kdyz je v potomkovi predefinovana

priklad (jen schematicky)

class A
{
public:
	A();

	virtual void m();
};

A::A()
{
	m();
}

class B: 
{
public:
	B();

	virtual void m();
};

B::B():A()
{
}

---------
B * b = new B(); -- zde se bude volat B() -> A() -> A::m()
                    a ne B() -> A() -> B::m(), jak jsem cekal
---------

c++ je egcs 1.1.2 z RH 6.0CZ

Problem jsem dokazal vyresit i jinak, ale i tak by mne zajimalo,
jestli je to chyba egcs nebo vlastnost C++

		Diky
			Dan

----------------------------------------------
Daniel Horak
network and system administrator
e-mail: horak na sit.plzen-city.cz
privat e-mail: dan.horak na email.cz ICQ:36448176
----------------------------------------------


Další informace o konferenci Linux