Advertisement
adambkehl

Person Class - 2/14/19

Feb 22nd, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.82 KB | None | 0 0
  1. //------- person.h -------
  2. //Wrote in class on 2/14/19
  3. //UPDATED VERSION AT: http://bit.ly/222-person-new
  4.  
  5. #define _CRT_SECURE_NO_WARNINGS
  6. #include <iostream>
  7. #include <cstring> //not <string.h>
  8. using namespace std;
  9.  
  10. class Person
  11. {
  12. private:
  13.     char *name;
  14.     char *address;
  15.     char *phone;
  16. public:
  17.     Person();
  18.     ~Person();
  19.     Person(char const *n, char const *a, char const *p);
  20.     void printPerson(Person const &p);
  21.     char const *getName() const;
  22.     char const *getAddress() const;
  23.     char const *getPhone() const;
  24.     Person const &operator=(Person const &p);
  25. };
  26.  
  27.  
  28.  
  29.  
  30. //------- person.cpp -------
  31. //#include "person.h"
  32.  
  33. int main() {
  34.     Person y("John", "Palomar", "7603301782");
  35.     Person z, x, a;
  36.     z.printPerson(y);
  37.     a = x = z = y;
  38. }
  39.  
  40. Person::Person(){}
  41.  
  42. Person::Person(char const *n, char const *a, char const *p) {
  43.  
  44.     name = new char[strlen(n) + 1];
  45.     address = new char[strlen(a) + 1];
  46.     phone = new char[strlen(p) + 1];
  47.  
  48.     strcpy(name, n);
  49.     strcpy(address, a);
  50.     strcpy(phone, p);
  51. }
  52.  
  53. void Person::printPerson(Person const &p) {
  54.     Person x;
  55.     x = p; //overloaded
  56.     cout << x.getName() << endl;
  57.     cout << x.getAddress() << endl;
  58.     cout << x.getPhone() << endl;
  59. }
  60.  
  61. Person const &Person::operator=(Person const &p) {
  62.     if (this != &p) {
  63.         delete[]name;
  64.         delete[]phone;
  65.         delete[]address;
  66.         name = new char[strlen(p.getName()) + 1];
  67.         address = new char[strlen(p.getAddress()) + 1];
  68.         phone = new char[strlen(p.getPhone()) + 1];
  69.     }
  70.     return *this;
  71. }
  72.  
  73. char const *Person::getName() const {return name;}
  74. char const *Person::getAddress() const {return address;}
  75. char const *Person::getPhone() const {return phone;}
  76.  
  77. Person::~Person() {
  78.     delete[]name;
  79.     delete[]address;
  80.     delete[]phone;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement