LibertyPaul

8lab.main

May 15th, 2012
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. class Person{
  5.     string *name;
  6.     unsigned short *age;
  7.    
  8.     void show(){
  9.         cout<<"It's Person's class closed function \"Show\""<<endl;
  10.     }
  11.    
  12.     Person(string n="default", unsigned short a=0){
  13.         name=new string;
  14.         *name=n;
  15.         age=new unsigned short;
  16.         *age=a;
  17.     }
  18.     ~Person(){
  19.         delete name;
  20.         delete age;
  21.     }
  22.     public:
  23.    
  24.     void set_age(unsigned short i){
  25.         *age=i;
  26.     }
  27.    
  28.     unsigned short get_age(){
  29.         return *age;
  30.     }
  31.    
  32.     void set_name(string s){
  33.         *name=s;
  34.     }
  35.    
  36.     string get_name(){
  37.         return *name;
  38.     }
  39.    
  40.     unsigned short operator=(unsigned short a){
  41.         *age=a;
  42.         return a;
  43.     }
  44.     string operator=(string s){
  45.         *name=s;
  46.         return s;
  47.     }
  48.     Person *operator=(Person *any){
  49.         *name=*any->name;
  50.         *age=*any->age;
  51.         return any;
  52.     }
  53.     int operator+(unsigned short a){
  54.         *age+=a;
  55.         return *age;
  56.     }
  57.     ostream &operator<<(ostream &o){
  58.         return o<<*name;
  59.     }
  60.    
  61.     int operator++(){
  62.         return *age+=1;
  63.     }
  64.    
  65.     int operator--(){
  66.         return *age-=1;
  67.     }
  68.    
  69.     friend void fun(Person *ptr);
  70.     friend Person* get_new();
  71.     friend void del(Person *ptr);
  72. };
  73.    
  74. Person* get_new(){
  75.         return new Person;
  76.     }
  77.  
  78. void del(Person *ptr){
  79.     ptr->~Person();
  80. }
  81.  
  82. void fun(Person *ptr){
  83.     cout<<*ptr->name<<endl<<*ptr->age<<endl;
  84.     ptr->show();
  85. }
  86.  
  87.    
  88. int main(int argc, char **argv){
  89.     setlocale(LC_ALL, "rus");
  90.     Person *G=get_new(), *J=get_new();
  91.     G->set_age(42);
  92.     G->set_name("Bill");
  93.     J->set_age(49);
  94.     J->set_name("Steve");
  95.     fun(G);
  96.     fun(J);
  97.     del(G);
  98.     del(J);
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment