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

początki z konstruktorem

Object Storage Arubacloud
0 głosów
163 wizyt
pytanie zadane 24 sierpnia 2015 w C i C++ przez niezalogowany

Jak widać to będzie ciężka znajomość:

class Wioska
{
    int punkty;
    int il;

public:
    Wioska(int p);
    {//<= tutaj błąd
        il++;
    }
    ~Wioska()
    {
        il--;
    }

};
void obiekt()
{
    Wioska w[il];

    W(100);
}

a błąd brzmi
expected unqualified-id before "{" token

2 odpowiedzi

+1 głos
odpowiedź 24 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)
Po co ci średnik w siódmym wierszu?
komentarz 24 sierpnia 2015 przez niezalogowany
Dopiero się uczę, teraz mam problem w
Wioska w[il];

'il' nie jest zadeklarowane ale jest w pliku.h (4 linijka)
komentarz 24 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

Nie wiem, zadeklaruj sobie tę zmienną jako statyczną, czy w funkcji obiekt... rób, co chcesz wink

0 głosów
odpowiedź 24 sierpnia 2015 przez criss Mędrzec (172,590 p.)

il jest zadeklarowane jako składnik klasy, nie możesz się do tego odnosić od tak. Żeby w ogóle stworzyć jakieś il i się do niego odnieść musisz stworzyć obiekt klasy Wioska. I wtedy obiekt.il, operatorem kropką :P
Aczkolwiek do tego co ty chcesz zrobić (chcesz, żeby il pokazywało liczbe aktualnie istniejącyhc obiektów klasy Wioska, prawda?)  musisz wykorzystać statyczne elementy klasy. Czyli il deklarujesz w ten sposob:

static int il;

Wtedy wszystkie obiekty twojej klasy współdzielą ten składnik. I wtedy to faktycznie ma sens, bo inaczej po prstu wszystkie obiekty twojej klasy będą miały składową il = 1.
update: Do składowych statycznych możesz się też odnosić bez tworzenia jakiegokolweik obiektu w ten sposób: Klasa::skladowa 

komentarz 24 sierpnia 2015 przez niezalogowany

no ok teraz wygląda to tak

plik.h

class Wioska
{
    int punkty;
    int il;

public:
    Wioska(p = 100)//<= tutaj problem
    {
        il++;
    }

    ~Wioska()
    {
        il--;
    }

};

main.cpp
 

void obiekt()
{
    Wioska.w[il];
}
komentarz 24 sierpnia 2015 przez criss Mędrzec (172,590 p.)

Nic nie skumales, nie? Serio, nie mam pojęcia co żeś tutaj zrobił ale wygląda to tak strasznie, że... obejrzyj cały kurs Mirka nt. obiektowego C++ bo ja nie jestem w stanie.

Sprobuje ci wymienic twoje błędy, ale mówie - zobacz ten kurs bo widać ze nie ogarniasz kompletnie nic. Nawet nie wykorzystałeś tego co napisałem wcześniej. 

Po pierwsze - konstruktor z jednym argumentem zupełnie bez typu (int, char, itd.. ). Już pomijam, że zupełnie bez sensu bo nic z tym p nie robisz.
Po drugie - w dalszym ciągu il nie jest statyczne.
Po trzecie - Wioska.w[il]. Nie potrafie tego opisać. Wioska to klasa, nie obiekt. Czym jest w już w ogóle nie wiadomo, ale swoim zapisem sugerujesz, że w to tablica i próbujesz się odwołać do jej komórki nr il. Tyle, że wg twojego zapisu tablica jest składową obiektu Wioska, a Wioska nie jest obiektem tylko klasą. Masakra. Obejrzyj ten kurs, dopóki tego nie zrobisz nawet nie ma sensu czegokolwiek tłumaczyć.

Podobne pytania

0 głosów
2 odpowiedzi 241 wizyt
0 głosów
1 odpowiedź 104 wizyt
pytanie zadane 22 października 2018 w JavaScript przez Biay Początkujący (420 p.)
0 głosów
1 odpowiedź 232 wizyt

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 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!

...