-
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: Thu, 2 Jul 2009 22:44:16 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 147
Message-ID: <h2j673$7rh$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>
NNTP-Posting-Host: 87-205-89-247.adsl.inetia.pl
X-Trace: inews.gazeta.pl 1246567459 8049 87.205.89.247 (2 Jul 2009 20:44:19 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Thu, 2 Jul 2009 20:44:19 +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:182496
[ ukryj nagłówki ]
Użytkownik "Tomasz Bywalec" <t...@p...dont.spam.me.o2.pl> napisał w
wiadomości news:h2j58o$gbm$1@atlantis.news.neostrada.pl...
> larry2003 pisze:
>> Użytkownik "Jacek Czerwinski" <...@...z.pl> napisał w wiadomości
>> news:h2j2cq$n7a$1@news.onet.pl...
> [...]
>>> Domyślam się (nie piszesz o tym, zgaduję) że w silowy.h trzeba
>>> includować footbal.h (nazwy plików przypuszczalne)
>>>
>>
>> Ok, czyli jak rozumiem silowy.h powinien wyglądać następująco:
>>
>> #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);
>> };
>> z tym że z taką wersją silowy.h kompilator wyrzuca:
>>
>> g++ -c zaliczenie.cpp
>> In file included from silowy.h:1,
>> from zaliczenie.cpp:2:
>> football.h:1: error: redefinition of 'class Football'
>> football.h:3: error: previous definition of 'class Football'
>> make: *** [zaliczenie.o] Error 1
>>
>>
>
> To by mogło oznaczać, że w 'zaliczenie.cpp' już include'ujesz
> plik 'football.h' i kompilator dostaje definicję klasy
> Football zdublowaną (tylko dlaczego w takim razie wcześniej
> pojawiał się błąd przy kompilacji klasy Silowy?).
>
> Ale, tak czy owak, możesz spróbować dodać include-guard'y do
> swoich plików nagłówkowych (z tego co widzę brakuje ich w Twoim
> programie). To w zasadzie podstawy pisania w C++ więc i tak
> Ci się to przyda. Na początku i końcu pliku football.h dodajesz
> następujące 3 linijki:
>
> #ifndef FOOTBALL_H_INCLUDED
> #define FOOTBALL_H_INCLUDED
>
> // tu zawartość pliku
>
> #endif
>
> a w silowy.h prawie to samo, ale nieco inaczej:
>
> #ifndef SILOWY_H_INCLUDED
> #define SILOWY_H_INCLUDED
>
> // tu zawartość pliku
>
> #endif
>
> i podobnie w innych plikach nagłówkowych.
>
> Ta "sztuczka" zapobiega kilkukrotnemu załączeniu jednego pliku
> podczas kompilacji.
> Symbole FOOTBALL_H_INCLUDED i SILOWY_H_INCLUDED są tylko przykładami -
> równie dobrze mogłyby to być np. BLABLA111_X i TDTD_1234. Ważne
> jest aby w danym pliku .h w linijce z #ifndef i #define użyty był
> ten sam symbol i aby symbole te nie powtarzały się w różnych plikach
> nagłówkowych.
>
> Mam nadzieję że to pomoże w rozwiązaniu problemu.
> Pozdrawiam,
> Tomek Bywalec
Dobra to może wkleje jak to teraz wszystko wygląda bo już sie miesza:)
Plik football.h:
#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
plik silowy.h
#ifndef SILOWY_H_INCLUDED
#define SILOWY_H_INCLUDED
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
plik 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;
}
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
Następne wpisy z tego wątku
- 03.07.09 02:32 Mariusz Marszałkowski
- 03.07.09 08:19 Tomasz Bywalec
- 03.07.09 15:34 larry2003
- 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.
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-14 Do Kongresu SZAP/USONA Złożono Proj. ,,Ustawy o aneksji i statusie stanowym Grenlandii"
- 2026-01-13 STREFA CZYSTEGO TRANSPORTU. O tym nie mówią nam WŁADZE
- 2026-01-13 To nie koniec
- 2026-01-13 Warszawa => Recruiter 360 <=
- 2026-01-13 Katowice => Key Account Manager <=
- 2026-01-13 Warszawa => Senior Backend Java Developer <=
- 2026-01-13 Wrocław => ERP Implementation Consultant <=
- 2026-01-13 Elektryk a otwieranie drzwi :-)
- 2026-01-12 Schemat automatyki
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Polska Grupa Zbrojeniowa (85% udziałów) Likwiduje Stomil-Poznań - Zakład Działał Od 1928r.
- 2026-01-12 Teoretyczne zagadnienie - ogrzewanie budynku
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Polska Grupa Zbrojeniowa (85% udziałów) Likwiduje Stomil-Poznań - Zakład Działał Od 1928r.




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]