Advertisement
Guest User

gsgse

a guest
Mar 27th, 2015
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.88 KB | None | 0 0
  1. // Przeciążanie operatorów i konstruktory.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <stdio.h>
  6. #include <conio.h>
  7.  
  8. class DynArray
  9. {
  10. private :
  11.     int *tablica;
  12.     int size;
  13.  
  14. public :
  15.  
  16.     DynArray()
  17.     {
  18.         tablica = new int[0];
  19.         size = 0;
  20.     }
  21.  
  22.     DynArray(int n, int m)
  23.     {
  24.         tablica = new int[n];
  25.             size = n;
  26.         for (int i = 0; i <= n; i++)
  27.         {
  28.             tablica[i] = m;
  29.         }
  30.     }
  31.    
  32.     int Size() const
  33.     {
  34.         return size;
  35.     }
  36.  
  37.     DynArray::DynArray(const DynArray & D);
  38.  
  39.     void Display() const
  40.     {
  41.         printf("[");
  42.         {
  43.  
  44.             for (int i = 0; i < size; i++)
  45.             {
  46.                 printf("%d", tablica[i]);
  47.                 if (i != size - 1) printf(", ");
  48.             }
  49.         }
  50.         printf("]");
  51.     }
  52.  
  53.     ~DynArray();
  54.  
  55.     void operator!()
  56.     {
  57.         int a;
  58.         for (int i = 0; i <= this->Size(); i++)
  59.         {
  60.             a = ((this->tablica[i])*(-1));
  61.             this->tablica[i] = a;
  62.         }
  63.     }
  64.  
  65.     DynArray operator +=(int value)
  66.     {
  67.        
  68.         int * bufor = new int[size];
  69.  
  70.         for (int i = 0; i < (size); i++)
  71.         {
  72.             bufor[i] = tablica[i];
  73.         }
  74.         size++;
  75.         tablica = new int[size];
  76.         for (int i = 0; i < size; i++)
  77.         {
  78.             tablica[i] = bufor[i];
  79.         }
  80.         tablica[size - 1] = value;
  81.        
  82.         delete[] bufor;
  83.    
  84.         return *this;
  85.        
  86.     }
  87. };
  88.  
  89.  
  90. DynArray::DynArray(const DynArray & D)
  91. {
  92.     size = D.size;
  93.     tablica = new int[size];
  94.  
  95.     for (int i = 0; i<size; i++)
  96.     {
  97.  
  98.         tablica[i] = D.tablica[i];
  99.     }
  100. }
  101. DynArray::~DynArray()
  102. {
  103.     delete[] tablica;
  104. }
  105.  
  106. int _tmain(int argc, _TCHAR* argv[])
  107. {
  108.  
  109.     DynArray arr1;
  110.     DynArray arr2(5, 2);
  111.  
  112.     printf("arr1 {%2d} = ", arr1.Size());
  113.     arr1.Display();
  114.  
  115.     printf("\narr2 {%2d} = ", arr2.Size());
  116.     arr2.Display();
  117.  
  118.     DynArray arr3 = arr2;
  119.     arr3 += -10;
  120.     arr3 += -20;
  121.     arr3 += -30;
  122.     printf("\narr3 {%2d} =", arr3.Size());
  123.     arr3.Display();
  124.  
  125.     !arr3;
  126.     printf("\n!arr3 {%2d} = ", arr3.Size());
  127.     arr3.Display();
  128.  
  129.    
  130.     printf("\nKoniec.");
  131.     _getch();
  132.  
  133.     return 0;
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement