C/C++ Programmer's Guide (G06.27+, H06.08+, J06.03+)

Example
class A {
virtual int foo (); // foo not defined within its class
}; // A's virtual function table will be defined within the
// module that contains the definition of A::foo.
class B{
virtual int foo() {return 1;}
}; // all of B's virtual functions are defined within
// B's definition, so each module that contains B also
// contains a definition for B's virtual function table.
Defining Virtual Function Tables 437