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