-
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!
atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
From: Tomasz Bywalec <t...@p...dont.spam.me.o2.pl>
Newsgroups: pl.comp.programming
Subject: Re: dziedziczenie c++
Date: Thu, 02 Jul 2009 22:25:53 +0200
Organization: TP - http://www.tp.pl/
Lines: 72
Message-ID: <h2j58o$gbm$1@atlantis.news.neostrada.pl>
References: <h2j1it$ghr$1@inews.gazeta.pl> <h2j2cq$n7a$1@news.onet.pl>
<h2j3k4$ppn$1@inews.gazeta.pl>
NNTP-Posting-Host: abrq236.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: atlantis.news.neostrada.pl 1246566489 16758 83.8.110.236 (2 Jul 2009
20:28:09 GMT)
X-Complaints-To: u...@n...neostrada.pl
NNTP-Posting-Date: Thu, 2 Jul 2009 20:28:09 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
In-Reply-To: <h2j3k4$ppn$1@inews.gazeta.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:182494
[ ukryj nagłówki ]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
Następne wpisy z tego wątku
- 02.07.09 20:44 larry2003
- 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.
Najnowsze wątki z tej grupy
- 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
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-05 Shrek, wzrośnie cena prądu :-)
- 2025-07-05 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-07-05 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-05 Środa Wielkopolska => SAP FI/CO Konsultant wewnętrzny <=
- 2025-07-06 Płacić za wodę ze studni
- 2025-07-06 Kolejny inżynier...
- 2025-07-05 UE ustępuje pod presją Trumpa. Socjaldemokraci: oddaliśmy miliardy
- 2025-07-04 od kiedy można obrażać Plastusia i do kiedy Batyra?
- 2025-07-05 UE ustępuje pod presją Trumpa. Socjaldemokraci: oddaliśmy miliardy
- 2025-07-03 Trybik
- 2025-07-04 Renault Symbioz
- 2025-07-04 Architektura IIIRP: Wyjątkowa, a prymitywniejsza niż stodoła pod zaborami
- 2025-07-04 Warszawa => International Freight Forwarder <=
- 2025-07-04 Wrocław => SAP ABAP Developer <=
- 2025-07-04 Warszawa => Mid/Senior IT Recruiter <=