trl@cbrma.UUCP (Tom Lanning) (03/26/86)
Is this a bug in my version of cfront, or a natural attribute of C++? class one { public: void (*pointer)(); virtual void x () { cout << "one"; } virtual void y () { (*pointer)(); } one () { pointer = x; } } class two : public one { public: virtual void x () { cout << "two"; } } When I create an object of class "two", i.e. two object; and call "object.y ()", I get "one", not "two" like I want, and would somewhat expect. Is this correct? If "x" is a virtual function I would expect "pointer" to point to a "virtual function" pointer that changes with each derived class. Instead it appears that the value is fixed when the pointer is assigned a value. Any comments? Thanks. -- Tom Lanning AT&T Bell Laboratories Columbus OH 43213 614-860-4153