[vox-tech] C++ virtual function question

Hai Yi yihai2004 at gmail.com
Thu Dec 25 11:49:00 PST 2008


I am not sure this is a right place to ask a C++ question, but I
noticed some people posted C questions before.

This is a code snippet from the book "C++ FAQ",

class Base{
public:
virtual ~Base() throw();
};

class Derived: public Base{
};

int main(){}

according to the author, it should have a link problem, because,
direct quote :"The reason is that the only virtual function in class
Derived is inline, so the compiler puts a static copy of
Derived::~Derived() into the current source file. Since this static
copy of Derived::~Derived() invokes Base::~Base() the linker will need
a definition of Base::~Base()"

However, when I run this program, it worked fine. Is it my
misunderstanding or my system gave this code a pass? (the author say
it will fail on many systems...)


Thanks for any ideas!

Hai


More information about the vox-tech mailing list