Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. using namespace std;
  2.  
  3. class Integer
  4. {
  5.     int val;
  6.     char *nazwa;
  7. public:
  8.     Integer(int = 0);
  9.     ~Integer();
  10.     void show();
  11.  
  12.     friend Integer operator+(const Integer& , const Integer&);
  13.     Integer operator-(const Integer&) const;
  14.     Integer& operator=(const Integer&);
  15.     friend ostream& operator<<(ostream&, const Integer&);
  16. };
  17.  
  18. #include "stdafx.h"
  19. #include "Integer.h"
  20. #include <iostream>
  21.  
  22. using namespace std;
  23.  
  24. Integer::Integer(int val):val(val) {
  25.     nazwa = val > 0 ? new char[val] : nullptr;
  26. }
  27.  
  28. Integer::~Integer() {
  29.     delete[]nazwa;
  30.     nazwa = nullptr;
  31. }
  32.  
  33. void Integer::show() {
  34.     cout << val << endl;
  35. }
  36.  
  37. Integer operator+(const Integer& lewy, const Integer& prawy) {
  38.     return Integer(lewy.val + prawy.val);
  39. }
  40.  
  41. Integer Integer::operator-(const Integer&prawy) const {
  42.     return Integer(val - prawy.val);
  43. }
  44.  
  45. Integer& Integer::operator=(const Integer&prawy) {
  46.     if (this != &prawy) {
  47.         delete[] this->nazwa;
  48.         this->nazwa = prawy.val > 0 ? new char[prawy.val] : nullptr;
  49.         // skopiuj zawartosc z prawy.nazwa do this->nazwa
  50.         this->val = prawy.val;
  51.     }
  52.     return *this;
  53. }
  54.  
  55. ostream& operator<<(ostream&stream, const Integer&prawy) {
  56.     stream << prawy.val;
  57.     return stream;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement