1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include <iostream> { public: Foo() { g(); } virtual void f() = 0; void g() { f(); } }; : public Foo { public: virtual void f() { std::cout << "Hello Frob::f!\n"; } }; int main(int argc, char* argv) { Foo* f = new Frob; f->f(); } // Output: // pure virtual method called // terminate called without an active exception // Abort trap |