class Object { public: virtual ~Object(); virtual string isA(); protected: string _isA; private: Object( string s ) : _isA( s ){} };