View Full Version : #include
ma quando faccio include......cosa succede?
il preprocessore copia il file di intestazione .h sul file .cpp che contiene la direttiva?
succede che AX dice a BX: "ecco è arrivato un altro pirla !" :D :D
ilsensine
30-07-2004, 13:56
Sì. Un bel copia & incolla.
... come al solito .... :D
ilsensine
30-07-2004, 13:57
Originariamente inviato da a2000
come al solito .... :D
Finché non brevettano anche questo... ;)
no, solo il cancelletto. :D
ora che vi siete divertiti me la date una spiegazione un po' approfondita?
tipo:
se io ho 3 classi con il loro file
Myapp.cpp Myapp.h
My1class.cpp My1class.h
My2class.cpp My2class.h
e poi ho anche il prog
main.cpp.
main.cpp necessita di Myapp.h e My2class.h
Myapp.cpp necessita di My1class.h e My2class.h
My1class.cpp necessita di My2class.h
dove vanno gli include? io penso che
in main.cpp ci va
#include <Myapp.h>
#include <My2class.h>
in Myapp.cpp ci va
#include <Myapp.h>
#include <My1class.h>
#include <My2class.h>
e in My1class.cpp ci va
#include <Myclass.h>
#include <My2class.h>
ma cosi' non si sovrappongono le definizioni?
ho un dubbio derivato da una mancanza di teoria.
per cortesia voi magnanimi fornitemi conoscenza.
Sì...il .h viene copiato dentro...
Per evitare di includere più volte lo stesso file (magari ricorsivamente) si fa in questo modo (metti che il file sotto si chiami pippo.h):
#include "pluto.h"
//tutti gli include necessari
#ifndef ___PIPPO_H
//il nome sopra è puramente di fantasia, ma deve essere diverso per ogni include
#define ___PIPPO_H
/*
corpo del file .h
*/
#endif
ok grazie anch'io ho smanettato un po' con gli #ifndef libro alla mano,
ma ora ho un problema:
una classe necessaria ad altre due classi
ed anche al prog principale.
l'include e' necessario in tutte e due le classi, in modo che sappiano come e' fatta la classe comune giusto?
ma se metto ifndef, il famoso copia e incolla non e' fatto giusto?
e allora non farei prima a non includere direttamente il file della classe comune ?
che so' c'e' qualcosa che non mi torna.
se d'altronde non metto l'ifndef mi da doppia dichiarazione.
mi potresti dare soluzione a quanto scritto nell'esempio precedente?
grazie.
Usa SEMPRE l'#ifndef...ed includi SEMPRE un .h quando ti serve un qualcosa contenuto al suo interno... In questo modo risolvi qualsiasi problema...
un'altra cosa...
se metto un include che non serve il compilatore incrementa le dimensioni del file finale?
anche se il file e' gia incluso da qualche altra parte?
forse facevo prima a fare l'esperimento da solo:D
Originariamente inviato da x110
un'altra cosa...
se metto un include che non serve il compilatore incrementa le dimensioni del file finale?
anche se il file e' gia incluso da qualche altra parte?
forse facevo prima a fare l'esperimento da solo:D
Dipende... Se nel file .h ci sono anche le implementazioni sì (anche se non ho verificato)...se ci sono solo le dichiarazioni no...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.