In C++, it is legal to give an implementation of a pure virtual function:
class C { public: virtual int f() = 0; }; int C::f() { return 0; }
Just found out that Herb Sutter answered the first part of this question in his Guru of the Week #31.