//edit okrem priameho vlozenia
C++ vzajomne inkludovanie suborov
-
reDo
Star
- Príspevky: 661
- Registrovaný: 26 apr 2009, 18:36
- Bydlisko: 00100100
- Kontaktovať používateľa:
C++ vzajomne inkludovanie suborov
potrebujem navzajom inkludovat 2 hlavickove subory, nevie prosim ako na to? lebo ked to spravim normalne tak v jednom mi to vypisuje chybu ze nazov triedy(v mojom priprade) nebola deklarovana, prosim mate niekto nejake riesenie
?
//edit okrem priameho vlozenia
//edit okrem priameho vlozenia
Re: C++ vzajomne inkludovanie suborov
Ukáž ako to robíš.
Re: C++ vzajomne inkludovanie suborov
a nezdá sa ti to tak trochu hlúpost ? sprav tretiu triedu kde tie dva spojis alebo si to vymysli inak lebo toto je podla mna zlý návrh
-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: C++ vzajomne inkludovanie suborov
Ak pouzivas gcc, alebo g++ tak
uprav svoje h subory takto
uprav svoje h subory takto
Kód: Vybrať všetko
#ifndef nazovsuboru
#define nazovsuboru 1
// tvoj subor
#endif
-
johny3212
Star
- Príspevky: 532
- Registrovaný: 17 feb 2008, 19:56
- Bydlisko: Terchova
- Kontaktovať používateľa:
Re: C++ vzajomne inkludovanie suborov
Neviem presne o co ti ide. Je pravda, ze s mnozstvom suborov vznika s hlavickovymi bordel, riesi sa to jednoducho.
Sprav si jeden hlavickovy subor napr. BaseDeclaration.h a tam daj vsetky standardne ceckovske hlavickove a budes vsade volat iba ten BaseDeclaration.h.
Potom si sprav napr. CoreDeclaration.h a tam daj hlavickove tvojich tried. Potom si mozes spravit CoreClassDeclaration.h a tam das deklaracie tried. Potom CoreDeclaration.h budes volat v *.cpp a CoreClassDeclaration.h vo *.h. Taketo riesenia sa pouzivaju, ak chces nieco ine, tak chces urcite spravit nieco zle
. Ukaz co chces spravit, nech ta odhovorim od toho
.
Triedy si daj generovat automaticky, je to lepsie, nech to vypada ako pisal harrison314.
Triadka.h
Sprav si jeden hlavickovy subor napr. BaseDeclaration.h a tam daj vsetky standardne ceckovske hlavickove a budes vsade volat iba ten BaseDeclaration.h.
Potom si sprav napr. CoreDeclaration.h a tam daj hlavickove tvojich tried. Potom si mozes spravit CoreClassDeclaration.h a tam das deklaracie tried. Potom CoreDeclaration.h budes volat v *.cpp a CoreClassDeclaration.h vo *.h. Taketo riesenia sa pouzivaju, ak chces nieco ine, tak chces urcite spravit nieco zle
Triedy si daj generovat automaticky, je to lepsie, nech to vypada ako pisal harrison314.
Triadka.h
Kód: Vybrať všetko
#ifndef TRIEDKA_H_
#define TRIEDKA_H_
class Triadka
{
public:
Triadka();
virtual ~Triadka();
};
#endif // TRIEDKA_H_
-
reDo
Star
- Príspevky: 661
- Registrovaný: 26 apr 2009, 18:36
- Bydlisko: 00100100
- Kontaktovať používateľa:
Re: C++ vzajomne inkludovanie suborov
mam tu dat vsetkych 11 suborov cpp + hpp ci len tie ktore mi robia problem?
-
johny3212
Star
- Príspevky: 532
- Registrovaný: 17 feb 2008, 19:56
- Bydlisko: Terchova
- Kontaktovať používateľa:
Re: C++ vzajomne inkludovanie suborov
Sprav to tak ako som ti pisal
. Priklad.
BaseDeclaration.h
CoreDeclaration.h
CoreClassDeclaration.h
Triedka2.h
Triedka2.cpp
Ked si spravis takyto pekny system, nebude ti to robit k...iny
. Dufam, ze to ale chapes
.
BaseDeclaration.h
Kód: Vybrať všetko
#include <iostream>
#include <fstream>
Kód: Vybrať všetko
#include "Triadka.h"
#include "Triadka2.h"
...
Kód: Vybrať všetko
class Triadka;
class Triadka2;
...
Kód: Vybrať všetko
#ifndef TRIEDKA2_H_
#define TRIEDKA2_H_
#include "BaseDeclaration.h"
#include "CoreClassDeclaration.h" //tu sa vola class declaration
class Triadka2
{
public:
Triadka2();
virtual ~Triadka2();
};
#endif // TRIEDKA2_H_
Kód: Vybrať všetko
#include "CoreDeclaration.h" //tu sa vola header declarations
Triedka2::Triedka2()
{
}
~Triedka2::Triedka2()
{
}
-
reDo
Star
- Príspevky: 661
- Registrovaný: 26 apr 2009, 18:36
- Bydlisko: 00100100
- Kontaktovať používateľa:
Re: C++ vzajomne inkludovanie suborov
no ok ale aj tak sem dam pre istotu zdrojaky aby ste sa mi pozreli na navrh trosku lebo je to moj prvy program OOP 
- Prílohy
-
- sources.zip
- (5.75 KiB) 18 stiahnutí
-
johny3212
Star
- Príspevky: 532
- Registrovaný: 17 feb 2008, 19:56
- Bydlisko: Terchova
- Kontaktovať používateľa:
Re: C++ vzajomne inkludovanie suborov
Ja som iba tak nahliadol do tvojich kodov a taka otazka, dufam, ze chapes vyznamu slova "static" v C++
. Lebo OOP oproti klasik C, nie je velky funkcny rozdiel, v podstate OOP predstavuje iba nejake zprehladnenie kodu (premennych a funkcii) do nejakych oddelenych skupin
. Ked vytvoris objekt, tak sa ti postupne vytvaraju nove miesta v pamati pre vsetko, co ta trieda obsahuje. ALE !!! ak mas v triede nejaku premennu a ta je static a vytvoris viac objektov, tak? Skus povedat co sa ti stane
, hmm?. Static je paradna vec, ale pozor na jej pouzivanie.
-
reDo
Star
- Príspevky: 661
- Registrovaný: 26 apr 2009, 18:36
- Bydlisko: 00100100
- Kontaktovať používateľa:
Re: C++ vzajomne inkludovanie suborov
static premenne v triedach su pre vsetky objekty danej triedy spolocne
, ja viem co robim...vacsinou 
//autoeditácia príspevku (11 Máj 2011, 20:03)
o tom ze mozem niekde dat len
a potom inde jej definiciu som nevedel a ani nevidel doteraz, diky
//autoeditácia príspevku (12 Máj 2011, 14:42)
diky johny funguje to
//autoeditácia príspevku (11 Máj 2011, 20:03)
o tom ze mozem niekde dat len
Kód: Vybrať všetko
class NazovTriedy;a potom inde jej definiciu som nevedel a ani nevidel doteraz, diky
//autoeditácia príspevku (12 Máj 2011, 14:42)
diky johny funguje to