-
Data: 2009-07-03 15:34:59
Temat: Re: dziedziczenie c++
Od: "larry2003" <l...@i...pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
Następne wpisy z tego wątku
- 03.07.09 19:24 Grzegorz Niemirowski
- 03.07.09 19:37 larry2003
- 03.07.09 20:00 Michoo
- 03.07.09 20:41 larry2003
- 03.07.09 21:25 thearti
- 03.07.09 21:49 Bronek Kozicki
- 03.07.09 22:18 Michoo
- 04.07.09 02:02 Mariusz Marszałkowski
- 04.07.09 02:07 A.L.
- 04.07.09 02:05 Mariusz Marszałkowski
- 04.07.09 02:08 A.L.
- 04.07.09 02:09 A.L.
- 04.07.09 02:16 Mariusz Marszałkowski
- 04.07.09 02:42 A.L.
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-05-26 O co chodzi?
- 2024-05-26 PJ autobus-tramwaj
- 2024-05-26 Renault Trafic i lampka z czerwonym STOP
- 2024-05-26 cena pięciocyfrowa
- 2024-05-26 Re: Jak dobra KE "okrada" złą Rosję "dla Ukrainy"
- 2024-05-25 supercap
- 2024-05-25 Sulzbach => Technischer Rollouter (d/m/w) <=
- 2024-05-25 Warszawa => Senior Account Manager <=
- 2024-05-25 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-25 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-25 Warszawa => Interactive/Experience Designer <=
- 2024-05-25 Warszawa => Key Account Manager <=
- 2024-05-25 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-25 Warszawa => Key Account Manager <=
- 2024-05-25 Re: znów ten wrocław