Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- class Person{
- string *name;
- unsigned short *age;
- void show(){
- cout<<"It's Person's class closed function \"Show\""<<endl;
- }
- Person(string n="default", unsigned short a=0){
- name=new string;
- *name=n;
- age=new unsigned short;
- *age=a;
- }
- ~Person(){
- delete name;
- delete age;
- }
- public:
- void set_age(unsigned short i){
- *age=i;
- }
- unsigned short get_age(){
- return *age;
- }
- void set_name(string s){
- *name=s;
- }
- string get_name(){
- return *name;
- }
- unsigned short operator=(unsigned short a){
- *age=a;
- return a;
- }
- string operator=(string s){
- *name=s;
- return s;
- }
- Person *operator=(Person *any){
- *name=*any->name;
- *age=*any->age;
- return any;
- }
- int operator+(unsigned short a){
- *age+=a;
- return *age;
- }
- ostream &operator<<(ostream &o){
- return o<<*name;
- }
- int operator++(){
- return *age+=1;
- }
- int operator--(){
- return *age-=1;
- }
- friend void fun(Person *ptr);
- friend Person* get_new();
- friend void del(Person *ptr);
- };
- Person* get_new(){
- return new Person;
- }
- void del(Person *ptr){
- ptr->~Person();
- }
- void fun(Person *ptr){
- cout<<*ptr->name<<endl<<*ptr->age<<endl;
- ptr->show();
- }
- int main(int argc, char **argv){
- setlocale(LC_ALL, "rus");
- Person *G=get_new(), *J=get_new();
- G->set_age(42);
- G->set_name("Bill");
- J->set_age(49);
- J->set_name("Steve");
- fun(G);
- fun(J);
- del(G);
- del(J);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment