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

[C++] Wskaźnik tablicy obiektów w klasach

Ostatnio zmodyfikowano 2014-11-12 18:20
Autor Wiadomość
Lukier
Temat założony przez niniejszego użytkownika
» 2014-11-12 12:27:28
Dzięki, ten problem z wskaźnikiem na tablice już ogarnąłem. Lecz natchnąłem się znowu na pewien problem. Otóż mam klasę:
 
C/C++
class srednieocen
{
private:
    string imie;
    string nazwisko;
    float srednie;
public:
    srednieocen()
    {
        imie = "pusty";
        nazwisko = "pusty";
        srednie = 0.0;
    }
    void create( srednieocen **&, iloscuczniow * );
};

Do nie w funkcji main tworzę:

srednieocen ** srednia;


I za pomocą funkcji chcę zaalokować w niej pamięć:

C/C++
void srednieocen::create( srednieocen **& srednia, iloscuczniow * liczba )
{
    srednia = new srednieocen *[ liczba->ilosc ];
    for( int i = 0; i < liczba->ilosc; i++ )
    {
        srednia[ i ] = new srednieocen();
    }
}

Mój problem polega z wywoływaniem funkcji takiego wskaźnika na tablice wskaźników, ze zwykłą "->" nie działa zaś gdy robię takie coś (*srednia)-> to program się zwiesza, zaś gdy ciało funkcji umieszczę w funkcji main to wszystko działa jak należy.
P-120422
Tomek_z_W11
» 2014-11-12 15:45:37
srednieocen **& srednia,

miałeś chyba na myśli przekazanie do funkcji wskaźnik na wskaźnik?

Tak to się robi:
srednieocen ** srednia.


A tak z ciekawości zapytam, kompilator Ci sie nie skarży, że tutaj chce nawiasy okrągłe zamiast kwadratowych?
srednia = new srednieocen *[ liczba->ilosc ];
P-120429
michal11
» 2014-11-12 17:53:35
Usuń też nawiasy z drugiego new, przy wywoływaniu konstruktora bezargumentowego nie są potrzebne.

@up
Dlaczego niby miałyby być tam nawiasy okrągłe ?
P-120440
Lukier
Temat założony przez niniejszego użytkownika
» 2014-11-12 18:20:25
Problem rozwiązany, nie skarżył się o nawiasy kwadratowe, dzięki wszystkim za pomoc.
Pozdrawiam.
P-120442
1 « 2 »
Poprzednia strona Strona 2 z 2