#include class Human { public: std::string *Name; virtual ~Human ( void ); Human ( void ); virtual void SetName ( const char *Name ); }; class Female : public Human { private: std::string *Name; public: Female ( void ); virtual ~Female ( void ); virtual void SetName ( const char *Name ); }; class Male : public Human { private: std::string *Name; public: Male ( void ); virtual ~Male ( void ); virtual void SetName ( const char *Name ); }; Female::Female ( void ) { std::cout << "A new female was born." << std::endl; this->Name = new std::string ( ); } Female::~Female ( void ) { std::cout << "A female was killed." << std::endl; delete ( this->Name ); } void Female::SetName ( const char *Name ) { this->Name->clear ( ); this->Name->insert ( 0, Name ); } Male::Male ( void ) { std::cout << "A male was born." << std::endl; this->Name = new std::string ( ); } Male::~Male ( void ) { std::cout << "A male was killed." << std::endl; delete ( this->Name ); } void Male::SetName ( const char *Name ) { this->Name->clear ( ); this->Name->insert ( 0, Name ); } int main ( int argc, char **argv ) { Male *male = new Male ( ); Female *female = new Female ( ); male->SetName ( "Kalle" ); female->SetName ( "Lisa" ); delete ( male ); delete ( female ); return 0; }