#include <iostream> using namespace std; class Base{ private: int lock_; int data_; public: void read_from(std::istream &i){ } void write_to(int i){ } virtual ~Base(){ } private: virtual void read_from_impl(std::istream &)=0; virtual void write_to_impl(std::ostream &) const =0; }; class XMLReaderWriter:public Base{ private: virtual void read_from_impl(std::istream &){ } virtual void write_to_impl(std::ostream &) const{ } public: void display(){ cout<<"display /n"<<endl; } }; int main() { XMLReaderWriter *xml=new XMLReaderWriter(); xml->display(); } g++ -o base base.cc