Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C C++ - Klasy, tablica obiektów, error

jolkajolka 01 Cze 2013 09:56 1425 10
  • #1 01 Cze 2013 09:56
    jolkajolka
    Poziom 12  

    Mam problem. Siedze już na tym z 2h i nie mam pojęcia dlaczego nie działa. Mój error głównie wygląda tak:
    error: no matching function for call to ‘channel::channel()’
    Zakładam że coś jest nie tak z moją pętlą... ale nie wiem co. Będę bardzo wdzieczna za wskazówki.

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0 10
  • #2 01 Cze 2013 10:00
    szwagros
    Poziom 30  

    W definicji funkcji channel() nie powinieneś przypadkiem podać zwracanego typu?

    0
  • #3 01 Cze 2013 10:02
    jolkajolka
    Poziom 12  

    szwagros napisał:
    W definicji funkcji channel() nie powinieneś przypadkiem podać zwracanego typu?

    Ok, poprawiłam na void, teraz error: no match for ‘operator=’ w linijce wewnątrz loopa.

    0
  • #4 01 Cze 2013 10:26
    kopek11111
    Poziom 17  

    Z tego co widzę używasz zmiennej 'a', a nie masz jej zadeklarowanej. Musisz ją zadeklarować:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #5 01 Cze 2013 11:34
    jolkajolka
    Poziom 12  

    Kurcze, zapomniałam dorzucić do kodu na forum, bo to co wkleiłam nie zawiera drobnej części programu w której wprowadzam zmienne. Tak więc wszystkie zmienne są zadeklarowane.

    0
  • #6 01 Cze 2013 11:37
    kopek11111
    Poziom 17  

    To daj pełny kod. I jeszcze w konstruktorze nie powinno być słowa void. Może to też pomoże;)

    0
  • #7 01 Cze 2013 11:47
    jolkajolka
    Poziom 12  

    Nie pisałam w konstruktorze void, ale kolega zwrócił uwagę i poprawiłam, a jestem dopiero początkująca w obiektowym więc posłuchałam;p

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #8 01 Cze 2013 12:09
    kopek11111
    Poziom 17  

    W konstruktorze nie piszę się żadnego zwracanego typu ani nawet void. Teraz masz vor, popraw na tor.
    W tej linii nie masz cudzysłowia

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Powinno być:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Takiego czegoś nie można raczej zrobić:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Najwyżej:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Teraz przekazano do konstruktora wartość zmiennej ilosc
    A w pętli raczej takie coś:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #9 01 Cze 2013 14:07
    jolkajolka
    Poziom 12  

    Dzięki za odp.
    Chcę zrobić tak, żebym mogła utworzyć tablicę obiektów, czyli jakby klas tor. Czyli że tworzy mi się różna liczba tych klas w zależności od wartości ilośc.
    Poprawiłam zgodnie z tym co napisałeś i program kompiluje się bez żadnych błędów, ale czy to działa w taki sposób jak bym chciała? Nie muszę wcześniej gdzieś napisać ile elementów będzie mieć tablica zestaw?

    Dodano po 1 [godziny] 25 [minuty]:

    A jednak nie działa, gdy zrobiłam tak jak napisałeś działa tylko gdy ilosc=1 a gdy jest równe 3 to już mi wyskakuje:Naruszenie ochrony pamięci (core dumped). Powinnam zadeklarować jakoś wcześniej ile elementów tablicy będę potrzebowala....

    0
  • Pomocny post
    #10 01 Cze 2013 22:07
    krru
    Poziom 32  

    kopek11111 napisał:

    Takiego czegoś nie można raczej zrobić:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Najwyżej:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Teraz przekazano do konstruktora wartość zmiennej ilosc
    A w pętli raczej takie coś:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Co miała by robić ta ostatnia instrukcja? Utworzenie tymczasowego obiektu tor i podstawienie (skopiowanie) do tablicy?

    Skoro potem używa się zestaw jako tablicy to i utworzenie tego jako tablice:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    jest potrzebne.

    Problem polega na tym, że by można było utworzyć tablicę obiektów, klasa obiektu musi posiadać konstruktor domyślny (bezparametrowy) - takim są inicjowane elementy tablicy.

    Natomiast w kodzie źródłowym jest
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    co sugeruje, że zestaw powiniem być tablicą wskaźników. Wtedy

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    i konstruktor domyslny nie jest niezbędny.

    0
  • #11 03 Cze 2013 14:35
    jolkajolka
    Poziom 12  

    Dzięki wielkie! Właśnie o to mi chodziło, znalazłam takie rozwiązanie gdzieś na forum, ale coś mi nie działało, nie wiem czemu, chyba wtedy coś popsułam w pętli. Dziękuję za pomoc:)

    0