Dear Advanced C/g++ programers: a simple program about Creating an interface with an Abstract Base Class. from book (C++ cookbook) page 308, 309. Example 8-11. using a pure interface. ---------------------- // Example 8-11 Using a pure interface class Person { public: virtual void eat() = 0; virtual void sleep() = 0; virtual void walk() = 0; virtual void jump() = 0; }; class IAirbone { public: virtual void fly() = 0; virtual void up() = 0; virtual void down() = 0; }; class Superhero : public Person, // A superhero *is* a person public IAirbone { // and flies public: virtual void eat(); virtual void sleep(); virtual void walk(); virtual void jump(); virtual void fly(); virtual void up(); virtual void down(); virtual ~Superhero(); }; void Superhero::walk() { // ... } void Superhero::fly() { // ... } // Implement all of the pure virtuals in Superhero's Superclasses... int main() { Superhero superman; superman.walk(); // Superman can walk like a person superman.fly(); // or fly like a bird } --------------------------------------------------- my g++ 4.5.2 (on linux2.6.35-25) response by ------------------------------------- eric@eric-laptop:~/cppcookbook/ch8$ g++ Example8-11.cpp /tmp/ccT3nO5t.o: In function `main': Example8-11.cpp:(.text+0x47): undefined reference to `Superhero::~Superhero()' /tmp/ccT3nO5t.o: In function `Superhero::Superhero()': Example8-11.cpp:(.text._ZN9SuperheroC2Ev[_ZN9SuperheroC5Ev]+0x24): undefined reference to `vtable for Superhero' Example8-11.cpp:(.text._ZN9SuperheroC2Ev[_ZN9SuperheroC5Ev]+0x2e): undefined reference to `vtable for Superhero' collect2: ld returned 1 exit status -------------------------------------------------- actually that book even did not specially define Superhero::walk(), that is I add by myself to escape my compile's error(is that right? or book's is right?) you can download the source code of that book's example and test by yourself http://examples.oreilly.com/9780596007614/ according to book, thses code are compile good in visual c++ 7.1 on window xp thanks your help a lot in advance, Eric