Hyluss icon

Przeciazanie operatorow

Hyluss | PRO | 07/02/16 06:16:41 PM UTC | 0 ⭐ | 474 👁️ | Never ⏰ | []
C |

1.83 KB

|

None

|

0 👍

/

0 👎

// 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;
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎