Advertisement
adambkehl

Person Class - 2/19/19

Feb 22nd, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. //------- Person.h -------
  2. //Wrote in class 2/19/19
  3. //Introduction to overloading operators
  4.  
  5. #define _CRT_SECURE_NO_WARNINGS
  6. #include <iostream>
  7. using namespace std;
  8.  
  9. class Person {
  10.  
  11. private:
  12.     char *name, *address, *phone;
  13.  
  14. public:
  15.     friend ostream & operator<<(ostream &, Person const &);
  16.     Person();
  17.     Person(char const *, char const *, char const *);
  18.     ~Person();
  19.     Person const &operator=(Person const &p);
  20. };
  21.  
  22.  
  23.  
  24.  
  25. //------- Person.cpp -------
  26. //#include "Person.h"
  27.  
  28. int main() {
  29.     Person p("name", "phone", "address");
  30. }
  31. Person const &Person::operator=(Person const &p) {
  32.     if (this != &p) {
  33.         delete[]name;
  34.         delete[]phone;
  35.         delete[]address;
  36.         name = new char[strlen(p.name) + 1];
  37.         address = new char[strlen(p.address) + 1];
  38.         phone = new char[strlen(p.phone) + 1];
  39.     }
  40.     return *this;
  41. }
  42.  
  43. ostream &operator<<(ostream &out, Person const &p) {
  44.  
  45.     return ( out << "name: " << p.name << endl << "phone: " << p.phone << endl << "address: " << p.address << endl );
  46. }
  47.  
  48. Person::Person() { }
  49. Person::~Person() { }
  50. Person::Person(char const *a, char const *b, char const *c) {
  51.     name = new char[10];
  52.     phone = new char[10];
  53.     address = new char[10];
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement