Missing virtual functions

Eric Britten ebritten@uci.edu
Wed Aug 27 07:06:00 GMT 1997


Yesterday I found that if one declares virtual functions in a class
like:

class A
{
    A();
    virtual void B();
};

and the definitions for the functions(inline or external) are not found
by the linker then two types of linking errors result.

1.  Undefined reference to a vtable in the constructors of the class.
2.  Undefined reference to any other inline functions of the class that
are used by other code.

It took me a while to figure out that if all virtual functions are
defined, then these errors go away.  Is this GNU specific?  It would
help if the linker complained of undefined references to the virtual
function without a definition, rather than the missing vtable.  Of
course this would help those unfamiliar with this error, I already know
the cause.

Eric Britten

-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".



More information about the Cygwin mailing list