Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // przeciazanie operatorow, konstruktor parametryczny, kopiujacy
- // }{
- #include "stdafx.h"
- #include <conio.h>
- #include <malloc.h>
- class DynArray
- {
- int* tab;
- int N;
- public:
- DynArray () : N (0)
- {
- }
- DynArray (int n, int m) : N (n)
- {
- tab = (int*) malloc (N*sizeof (int));
- for (int i=0; i<N; i++)
- tab[i] = m;
- }
- DynArray ( DynArray &dyn)
- {
- N= dyn.N;
- tab = (int*) malloc (N*sizeof (int));
- for (int i =0; i<N; i++)
- {
- tab[i] = dyn.tab[i];
- }
- }
- int Size ()
- {
- return N;
- }
- void Display ()
- {
- printf ("[");
- for (int i=0; i<N;i++)
- {
- printf ("%d",tab[i]);
- if (i!=N-1)
- {
- printf (", ");
- }
- }
- printf ("]");
- }
- void operator += (int liczba)
- {
- int i = N; // to ten uj!
- N++;
- //tab = (int*) realloc (tab, N*sizeof (*tab));
- tab = (int*) realloc ( tab, ( (N)*(sizeof (int)) ) );
- //tab = (int*) realloc (tab, sizeof (int)*(N) );
- // realloc (tab, sizeof (int)* (N) );
- // tab = (int*)realloc(tab, N*sizeof(int));
- tab[i] = liczba;
- // Display ();
- }
- void operator ! ()
- {
- for (int i=0;i<N;i++)
- {
- tab[i] *= -1;
- }
- }
- void Koniec()
- {
- /*for (int i=0;i<N;i++)
- {
- free (tab);
- }
- */
- }
- };
- int _tmain(int argc, _TCHAR* argv[])
- {
- DynArray arr1;
- DynArray arr2(5, 2);
- printf("arr1 {%2d} = ", arr1.Size());
- arr1.Display();
- printf("\narr2 {%2d} = ", arr2.Size());
- arr2.Display();
- DynArray arr3 = arr2;
- arr3 += -10;
- arr3 += -20;
- arr3 += -30;
- printf("\narr3 {%2d} = ", arr3.Size());
- arr3.Display();
- !arr3;
- printf("\n!arr3 {%2d} = ", arr3.Size());
- arr3.Display();
- printf("\narr2 {%2d} = ", arr2.Size());
- arr2.Display();
- arr1.Koniec(); // wydaje mis ei ze tablica jest juz automatycznie wyczyszczona, ale nie wiem jak i czemu xD
- arr2.Koniec();
- arr3.Koniec();
- printf("\n\nKoniec.");
- _getch();
- return 0;
- }
Advertisement