#include <iostream>
using namespace std;
class Base
{
public:
virtual void Foo() = 0;
};
// ***** This is how you define pure virtual function outside class
void Base::Foo () {
cout << "Base::Foo()\n";
}
class Derived
: public Base
{
public:
void Foo() {
Base::Foo(); // ***** This is how you call it
}
};
int main() {
Derived d;
d.Foo();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQmFzZQp7CglwdWJsaWM6CgkJdmlydHVhbCB2b2lkIEZvbygpID0gMDsKfTsKCi8vICoqKioqIFRoaXMgaXMgaG93IHlvdSBkZWZpbmUgcHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIG91dHNpZGUgY2xhc3MKdm9pZCBCYXNlOjpGb28gKCkgewoJY291dCA8PCAiQmFzZTo6Rm9vKClcbiI7Cn0KCmNsYXNzIERlcml2ZWQKCTogcHVibGljIEJhc2UKewoJcHVibGljOgoJIHZvaWQgRm9vKCkgeyAKCSAJQmFzZTo6Rm9vKCk7ICAvLyAqKioqKiBUaGlzIGlzIGhvdyB5b3UgY2FsbCBpdAoJIH0KfTsKCmludCBtYWluKCkgewoJRGVyaXZlZCBkOwoJZC5Gb28oKTsKCXJldHVybiAwOwp9