Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Klasa z tablicą dynamiczna - alokowanie pamięci

Ostatnio zmodyfikowano 2017-02-24 08:53
Autor Wiadomość
_Hulk_
Temat założony przez niniejszego użytkownika
[C++] Klasa z tablicą dynamiczna - alokowanie pamięci
» 2017-02-24 00:40:56
Witam,

mam takie zadanie : muszę stworzyć obiekt będący dynamiczną tablicą dla int. Obiekt musi dynamicznie zarządzać pamięcią - samodzielnie. Musi posiadać kilka metod między innymi taką, która doda element na końcu tablicy. Ja rozumiem to tak - trzeba zaalokować pamięć na nowo przepisać wartości, usunąć "stary obiekt", ?przepisać wskaźniki pod starą nazwę? .

Tu właśnie jest problem - nie mam pomysłu jak to zrobić... Obiekt powinien nazywać się tak samo aby można było używać go dla innych operacji w kodzie.

Nie  wiem czy to jest dobre rozwiązanie - może ktoś ma lepszy pomysł?



Moja klasa:

C/C++
class Tablica
{
private:
   
    int rozm;
    int * tab;
    int wartosc;
    static int ilosc;
   
public:
   
    Tablica( int rozm );
    Tablica( const Tablica & Tab );
   
    ~Tablica();
   
    int size();
    void podaj( int numer, int dana );
    int pokaz( int numer );
    int rozmiar();
   
};

Moje metody:

C/C++
Tablica::Tablica( int rozm )
{
    this->rozm = rozm;
    tab = new int[ rozm ];
    for( int i = 0; i < rozm; i++ )
    {
        tab[ i ] = 0;
    }
    ilosc++;
    cout << "Jestem w konstruktorze - tablica " << ilosc << endl;
}

Tablica::Tablica( const Tablica & Tablica )
{
    this->rozm =( Tablica.rozm + 1 );
    tab = new int[ rozm ];
    memcpy( tab, Tablica.tab, sizeof( int ) *( rozm - 1 ) );
    ilosc++;
    cout << "Jestem w konstruktorze kopiujacym " << ilosc << endl;
   
   
}

Tablica::~Tablica()
{
    ilosc--;
    cout << "Jestem w destruktorze - tablica " << ilosc << rozm << endl;
    delete[] tab;
}

int Tablica::size()
{
    return rozm;
}

void Tablica::podaj( int numer, int dana )
{
    tab[ numer ] = dana;
}

int Tablica::pokaz( int numer )
{
    return tab[ numer ];
}

int Tablica::rozmiar()
{
    return rozm;
}
P-158243
pekfos
» 2017-02-24 00:46:57
Twój problem nie ma nic wspólnego z obiektowością. Cały problem sprowadza się do obliczenia nowych wartości dla 2 zmiennych.
P-158244
_Hulk_
Temat założony przez niniejszego użytkownika
» 2017-02-24 07:21:13
No tak...to już jest jakiś trop - ale obawiam się, że muszę was prosić o więcej wskazówek. Na tą chwile próbowałem przepisywać wskaźniki ale nic z tego nie wyszło.

P-158245
hit
» 2017-02-24 08:53:35
http://cpp0x.pl/kursy/Kurs-C++/Dynamiczne-zarzadzanie-pamiecia-new-i-delete/307

Spójrz na to, powinno pomóc.
P-158246
« 1 »
  Strona 1 z 1