Advertisement
Pr0nly

kol1

Nov 11th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.36 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class K1;
  6. class K2;
  7.  
  8. class K1 {
  9.     string* p1;
  10. public:
  11.     K1() : p1(new string[2]){
  12.         p1[0] = "brak danych";
  13.         p1[1] = "brak danych";
  14.     }
  15.     K1(const string& a1, const string& a2) : p1(new string[2]) {
  16.         p1[0] = a1;
  17.         p1[1] = a2;
  18.     }
  19.     K1(const K1& r) : p1(new string[2]) {
  20.         p1[0] = r.p1[0];
  21.         p1[1] = r.p1[1];
  22.     }
  23.  
  24.     friend ostream& operator<<(ostream& out, const K1& r);
  25.     friend K2;
  26.     ~K1() { delete [] p1; }
  27. };
  28. class K2 {
  29.     K1 p1;
  30.     double p2;
  31. public:
  32.     K2() :p1(), p2(0) {}
  33.     K2(const string& a1, const string& a2, const double& a3) : p1(a1, a2), p2(a3) {}
  34.     K2(const K2& r) : p1(r.p1), p2(r.p2) {}
  35.  
  36.     /*K2& operator=(const K2& r) {
  37.         if (this != &r) {
  38.             p1 = r.p1;
  39.             p2 = r.p2;
  40.         }
  41.         return *this;
  42.     }*/
  43.  
  44.     friend ostream& operator<<(ostream& out, const K2& r);
  45.  
  46.     const K2 operator-(const double& l) {
  47.         return K2(p1.p1[0], p1.p1[1], (p2 - l));
  48.     }
  49. };
  50. ostream& operator<<(ostream& out, const K2& r) {
  51.     return out<< r.p1 << r.p2 << endl;
  52. }
  53. ostream& operator<<(ostream& out, const K1& r) {
  54.     return out << r.p1[0] << ' ' << r.p1[1];
  55. }
  56.  
  57.  
  58.  
  59.  
  60. int main()
  61. {
  62.     K2 ob1, ob2;
  63.     const K2* wsk1 = new K2("kawa", " z mlekiem", 4.50);
  64.     const K2 ob3(*wsk1);
  65.     delete wsk1;
  66.     wsk1 = 0;
  67.  
  68.     const K2* wsk2 = new K2(ob3);
  69.     ob2 = *wsk2;
  70.     cout << ob1 << *wsk2;
  71.     delete wsk2;
  72.     wsk2 = 0;
  73.     cout << ob2;
  74.     cout << ob2-1.25;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement