#include <iostream>
#include <cstring>
using namespace std;
class Employee
{
public :
Employee( char * name, int id) ;
~Employee( ) ;
char * getName( )
{
return _name;
}
//Other Accessor methods
int _id;
char * _name;
} ;
Employee:: Employee ( char * name, int id)
{
_id = id;
_name = new char [ strlen ( name) + 1 ] ;
//Allocates an character array object
strcpy ( _name, name) ;
}
Employee:: ~Employee( )
{
delete [ ] _name;
}
int main( )
{
Employee programmer( "John" ,22 ) ;
cout << programmer.getName ( ) << endl;
cout << "address of programmer = " << ( void * ) & programmer << endl;
cout << "address of programmer._id = " << ( void * ) & programmer._id << endl;
cout << "address of programmer._name = " << ( void * ) & programmer._name << endl;
cout << "programmer._name point to = " << ( void * ) programmer._name << endl;
Employee manager = programmer;
cout << manager.getName ( ) << endl;
cout << "address of manager = " << ( void * ) & manager << endl;
cout << "address of manager._id = " << ( void * ) & manager._id << endl;
cout << "address of manager._name = " << ( void * ) & manager._name << endl;
cout << "manager._name point to = " << ( void * ) manager._name << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIEVtcGxveWVlCnsKcHVibGljOgogICAgRW1wbG95ZWUoY2hhciAqbmFtZSwgaW50IGlkKTsKICAgIH5FbXBsb3llZSgpOwogICAgY2hhciAqZ2V0TmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIF9uYW1lOwogICAgfQovL090aGVyIEFjY2Vzc29yIG1ldGhvZHMKCiAgICBpbnQgX2lkOwogICAgY2hhciAqX25hbWU7Cn07CgpFbXBsb3llZTo6RW1wbG95ZWUoY2hhciAqbmFtZSwgaW50IGlkKQp7CiAgICBfaWQgPSBpZDsKICAgIF9uYW1lID0gbmV3IGNoYXJbc3RybGVuKG5hbWUpICsgMV07Ci8vQWxsb2NhdGVzIGFuIGNoYXJhY3RlciBhcnJheSBvYmplY3QKICAgIHN0cmNweShfbmFtZSwgbmFtZSk7Cn0KCkVtcGxveWVlOjp+RW1wbG95ZWUoKQp7CiAgICBkZWxldGVbXSBfbmFtZTsKfQoKaW50IG1haW4oKQp7CiAgICBFbXBsb3llZSBwcm9ncmFtbWVyKCJKb2huIiwyMik7CiAgICBjb3V0IDw8IHByb2dyYW1tZXIuZ2V0TmFtZSgpIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJhZGRyZXNzIG9mIHByb2dyYW1tZXIgICAgICAgPSAiIDw8ICh2b2lkKikmcHJvZ3JhbW1lciA8PCBlbmRsOwogICAgY291dCA8PCAiYWRkcmVzcyBvZiBwcm9ncmFtbWVyLl9pZCAgID0gIiA8PCAodm9pZCopJnByb2dyYW1tZXIuX2lkIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJhZGRyZXNzIG9mIHByb2dyYW1tZXIuX25hbWUgPSAiIDw8ICh2b2lkKikmcHJvZ3JhbW1lci5fbmFtZSA8PCBlbmRsOwogICAgY291dCA8PCAicHJvZ3JhbW1lci5fbmFtZSBwb2ludCB0byAgID0gIiA8PCAodm9pZCopcHJvZ3JhbW1lci5fbmFtZSA8PCBlbmRsOwoKICAgIEVtcGxveWVlIG1hbmFnZXIgPSBwcm9ncmFtbWVyOwogICAgY291dCA8PCBtYW5hZ2VyLmdldE5hbWUoKSA8PCBlbmRsOwogICAgY291dCA8PCAiYWRkcmVzcyBvZiBtYW5hZ2VyICAgICAgID0gIiA8PCAodm9pZCopJm1hbmFnZXIgPDwgZW5kbDsKICAgIGNvdXQgPDwgImFkZHJlc3Mgb2YgbWFuYWdlci5faWQgICA9ICIgPDwgKHZvaWQqKSZtYW5hZ2VyLl9pZCA8PCBlbmRsOwogICAgY291dCA8PCAiYWRkcmVzcyBvZiBtYW5hZ2VyLl9uYW1lID0gIiA8PCAodm9pZCopJm1hbmFnZXIuX25hbWUgPDwgZW5kbDsKICAgIGNvdXQgPDwgIm1hbmFnZXIuX25hbWUgcG9pbnQgdG8gICA9ICIgPDwgKHZvaWQqKW1hbmFnZXIuX25hbWUgPDwgZW5kbDsKICAgIHJldHVybiAwOwp9Cg==