eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingdziedziczenie c++Re: dziedziczenie c++
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: "larry2003" <l...@i...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: dziedziczenie c++
    Date: Fri, 3 Jul 2009 17:34:59 +0200
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 141
    Message-ID: <h2l8f9$c1j$1@inews.gazeta.pl>
    References: <h2j1it$ghr$1@inews.gazeta.pl> <h2j2cq$n7a$1@news.onet.pl>
    <h2j3k4$ppn$1@inews.gazeta.pl> <h2j58o$gbm$1@atlantis.news.neostrada.pl>
    <h2j673$7rh$1@inews.gazeta.pl> <h2kfh4$7tf$1@nemesis.news.neostrada.pl>
    NNTP-Posting-Host: 87-205-89-247.adsl.inetia.pl
    X-Trace: inews.gazeta.pl 1246635306 12339 87.205.89.247 (3 Jul 2009 15:35:06 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Fri, 3 Jul 2009 15:35:06 +0000 (UTC)
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
    X-Priority: 3
    X-RFC2646: Format=Flowed; Response
    X-User: cezaryk2008
    X-Antivirus: avast! (VPS 090702-0, 2009-07-02), Outbound message
    X-MSMail-Priority: Normal
    X-Antivirus-Status: Clean
    X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
    Xref: news-archive.icm.edu.pl pl.comp.programming:182502
    [ ukryj nagłówki ]


    Użytkownik "Tomasz Bywalec" <t...@p...dont.spam.me.o2.pl> napisał w
    wiadomości news:h2kfh4$7tf$1@nemesis.news.neostrada.pl...
    > larry2003 pisze:
    > [...]
    >> i po dodaniuch tych trzech linijek w każdym *.h wracam do punktu wyjścia
    >> :)
    >>
    >> g++ -c silowy.cpp
    >> In file included from silowy.cpp:1:
    >> silowy.h:5: error: expected class-name before '{' token
    >> make: *** [silowy.o] Error 1
    >>
    >
    > Błąd występuje podczas kompilacji pliku silowy.cpp którego źródła nie
    > pokazałeś - przypuszczam, że nie include'ujesz tam pliku "football.h",
    > w związku z czym przy parsowaniu zawartości "silowy.h" klasa Football
    > jest nieznana.
    >
    > Spróbuj z powrotem dodać do pliku silowy.h include dołączający plik
    > football.h, tak aby początek pliku silowy.h wyglądał tak:
    >
    > #ifndef SILOWY_H_INCLUDED
    > #define SILOWY_H_INCLUDED
    >
    > #include "football.h"
    >
    > class Silowy : public Football
    > ... i dalej reszta pliku...
    >
    > W ten sposób za każdym razem gdy dołączana jest definicja klasy Silowy
    > jednocześnie dołączana jest definicja klasy Football, oraz jesteś
    > zabezpieczony przed kilkukrotnym zainclude'owaniem definicji tej
    > samej klasy (include guardy).
    >
    > Mam nadzieję że teraz wszystko ruszy :)
    > Pozdrawiam,
    > Tomek Bywalec

    Ehh i kolejny problem:) a podobno programowanie jest takie przyjemne :)

    football.h wyglada tak
    #ifndef FOOTBALL_H_INCLUDED
    #define FOOTBALL_H_INCLUDED
    class Football
    {
    public:
    int ile;

    Football(int d);
    Football();
    void podaj(void);
    void strzel(void);
    void dosrodkuj(void);
    void odb_pilke(void);
    void drybluj(void);
    void bron(void);
    };
    #endif

    silowy.h:
    #ifndef SILOWY_H_INCLUDED
    #define SILOWY_H_INCLUDED
    #include "football.h"
    class Silowy : public Football
    {
    public:
    int ile;
    Silowy(int d);
    Silowy();
    void przepychanie_w_polu(void);
    void umiejetny_faul(void);
    void gra_glowa(void);
    };
    #endif

    zaliczenie.cpp:

    #include "football.h"
    #include "silowy.h"

    int main()

    {
    Football *f1;
    f1=new Football(1);
    f1->podaj();
    f1->dosrodkuj();
    delete f1;

    Silowy *s1;
    s1=new Silowy(1);
    s1->przepychanie_w_polu();
    s1->umiejetny_faul();
    delete s1;

    return 0;
    }

    silowy.cpp tak:

    #include "silowy.h"
    #include <iostream>

    Silowy::Silowy(int d)
    {
    ile=d;
    }

    void Silowy::gra_glowa(void)
    {
    for (int i=0;i<ile;i++)
    std::cout<<"Silowy->gra_glowa()\n";
    }

    void Silowy::przepychanie_w_polu(void)
    {
    for (int i=0;i<ile;i++)
    std::cout<<"Silowy->przepychanie_w_polu()\n";
    }

    void Silowy::umiejetny_faul(void)
    {
    for (int i=0;i<ile;i++)
    std::cout<<"Silowy->umiejetny_faul()\n";
    }

    i w rezultacie po kompilacji:

    g++ -o zaliczenie zaliczenie.o football.o silowy.o
    silowy.o: In function `Silowy::Silowy(int)':
    silowy.cpp:(.text+0x105): undefined reference to `Football::Football()'
    silowy.o: In function `Silowy::Silowy(int)':
    silowy.cpp:(.text+0x121): undefined reference to `Football::Football()'
    collect2: ld returned 1 exit status
    make: *** [zaliczenie] Error 1





Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: