• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przesyłanie tablicy obiektów do funkcji

Object Storage Arubacloud
0 głosów
424 wizyt
pytanie zadane 6 października 2015 w C i C++ przez emSon Stary wyjadacz (10,480 p.)

Cześć. Problem prosty.

Mam klasę Pole. Klasa ta ma przyjaciela rysuj_plansze(). Jego zadaniem jest przyjąć 100 obiektów klasy, posprawdzać różne atrybuty i wypisać je na ekranie. 

Obiekty trzymam w tablicy, którą tworze tak

Pole **pole;
pole = new Pole*[100];

Wiem, że dużo lepiej byłoby to zrobić vektorem bądź listą, lecz nie ogarniam jak. No ale nie o tym jest moje pytanie, a jest ono banalne. Jak taką tablicę do tego przyjaciela posłać? Próbowałem tak, ale coś nie szło. Nie wyświetliło żadnych błędów, ale chyba nie pobiera atrybutów.

void rysuj_plansze(Pole p[]); // definiowanie funkcji

rysuj_plansze(pole[100]); // wywołanie funkcji

Jako że jestem głąbem mogłem spierniczyć coś w funkcji ,dlatego też zamieszczam jej kod.

void rysuj_plansze(Pole p[])
{
    for(int i=1; i<101; i++)
    {
        system("CLS");
        if(i%10 == 0)
        {
            cout << endl;
        }

        if((p[i].trafione == false)||(p[i].pudlo == false))
        {
            cout << "[" << i << "] ";
        }
        else if(p[i].trafione == true)
        {
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
            cout << "[" << i << "] ";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
        }
        else if(p[i].pudlo == true)
        {
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 8);
            cout << "[" << i << "] ";
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
        }
    }
}

Program to Gra w Statki, a klasa Pole to nic innego jak pole :D Przepraszam za pytanie o banały, GOOGLE nie pomogło.

1 odpowiedź

+1 głos
odpowiedź 6 października 2015 przez Patrycjerz Mędrzec (192,320 p.)
wybrane 6 października 2015 przez emSon
 
Najlepsza

Jednowymiarową tablicę dynamiczną deklaruje się tak:

Pole* pole = new Pole[100];

A przesyła do funkcji tak:

void rysuj_plansze(Pole p[]); // deklaracja funkcji

rysuj_plansze(pole); // wywołanie funkcji

 

komentarz 6 października 2015 przez emSon Stary wyjadacz (10,480 p.)
A ja co deklarowałem?
komentarz 6 października 2015 przez Patrycjerz Mędrzec (192,320 p.)
Ty zadeklarowałeś tablicę dwuwymiarową.
komentarz 6 października 2015 przez emSon Stary wyjadacz (10,480 p.)

Czyli tablica trzywymiarowa wyglądałaby tak?

Pole ***pole;
pole = new Pole**[100];

 

 

komentarz 6 października 2015 przez Patrycjerz Mędrzec (192,320 p.)

Tak, tylko należy pamiętać, że przy deklaracji tablicy dynamicznej o ilości wymiarów większej, niż jeden, należy także zadeklarować każdy z wymiarów osobno. Lepiej zaprezentuje ci to ta strona: http://www.p-programowanie.pl/cpp/tablice-dynamiczne/.

komentarz 6 października 2015 przez emSon Stary wyjadacz (10,480 p.)
dzięki wielkie! ;)

Podobne pytania

0 głosów
1 odpowiedź 218 wizyt
0 głosów
1 odpowiedź 140 wizyt
pytanie zadane 20 stycznia 2016 w C i C++ przez evergreen Użytkownik (680 p.)
0 głosów
1 odpowiedź 134 wizyt
pytanie zadane 12 listopada 2016 w C# przez Corazzo Obywatel (1,040 p.)

92,565 zapytań

141,418 odpowiedzi

319,602 komentarzy

61,951 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...