|
Poslao: 15 Nov 2007 14:51
|
offline
- Pridružio: 21 Okt 2005
- Poruke: 65
- Gde živiš: localhost
|
Moze li ko da pomogne , odose mi zivci ...
Do sada sam radio sa class-ama koje su bile deklarisane u recimo klasa.h a funkcije clanice klase recimo u klasa.cpp ... Dovoljno je bilo da se u klasa.h napise #ifndef KLASA_H #define KLASA_H i na kraju #endif i da sve bude ok. kasnije se u main.cpp includuje klasa.h i sve radi ok .
Medjutim sada imam jedan header gde su mi deklarisane promenljive i ove promenljive se koriste i u klasa.cpp i u main.cpp .... Znaci postoje sledeci fajlovi :
def.h
klasa.h
klasa.cpp
main.cpp
-def.h bi trebalo da se includuke i u main.cpp i u klasa.cpp . E ja to ne mogu da postignem ... obavezno dobijam error tipa "multiple definition of xxx" ....
Ima li ko neko resenje , ili da me uputi gde da trazim ....
ovoliko bi mu bio zahvalan .
|
|
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
|
Poslao: 15 Nov 2007 15:48
|
offline
- bNasty

- Građanin
- Pridružio: 17 Mar 2004
- Poruke: 293
- Gde živiš: UK
|
U principu nije problem da taj def.h inkludujesh u koliko god hocesh fajlova (mada ima sluchajeva kad to nije jednostavno postici).
Glavno pitanje je shta ti se nalazi u tom fajlu i na shta se kompajler zhali? (recimo tu greshku cesh dobiti ako si u isto vreme deklarisao i implementirao funkciju u .h fajlu).
Ako ti bash treba "include once" mozhesh da koristish "#pragma once" u heder fajlu umesto standardnog include-guarda.
|
|
|
|
|
|
|
Poslao: 16 Nov 2007 09:31
|
offline
- meka

- Počasni građanin
- Pridružio: 06 Avg 2003
- Poruke: 811
- Gde živiš: Novi Sad / Vojvodina
|
A možeš, recimo, da koristiš i extern xxx u svim fajlovima osim u jednom. Ako ovo praktikuješ, dobra stvar je da je extern u svim fajlovima osim u main.cpp.
bNasty, mislim da je problem sa deklarisanjem promenljive u .h fajlu. User, ako sam u pravu, extern rešava problem (meni bar).
|
|
|
|
|
|
|
Poslao: 17 Nov 2007 03:53
|
offline
- Pridružio: 21 Okt 2005
- Poruke: 65
- Gde živiš: localhost
|
Probacu ljudi ... evo bio sam odsutan pa nisam probao ova resenja ... u svakom sucaju hvala na odgovorima ...
Mozda da naglasim samo da radim sa Irrlicht engine-om i zelim da deklarisem sledece :
ISceneNode* node = 0;
IrrlichtDevice* device = 0;
IVideoDriver* driver = 0;
ISceneManager* smgr = 0;
IGUIEnvironment* guienv = 0;
i da se ove "promenljive" vide u ostalim "fajlovima" gde ih je potrebno prepoznati....
inace u pitanju je Windows/Dev-cpp a upravo instaliram VC++ express
Dopuna: 17 Nov 2007 3:53
@meka
Radi ovako kako si rekao.... hvala puno
@bNasty
U svakom slucaju hvala ti , jer prelistavajuci dokumentaciju za #pragma once skonto sam neke druge stvari ...
Do sledecih pitanja :-)
|
|
|
|
|
|