|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2006
Città: Fossombrone (Pesaro e Urbino)
Messaggi: 405
|
[c++] Problema con #include
Salve a tutti. Ho un problema durante la compilazione di un mio progetto formato da più file. Ho la necessità di includere un sorgente all'interno di uno che contiene già l'inclusione a quest'altro. Aspettate, mi spiego con un esempio. Ho il file A che contiene l'include al file B. Ora nel file B mi servirebbe fare l'include al file A ma al momento della compilazione mi si presentano centinaia di errori. Probabilmente sto cercando di fare una cosa impossibile ma anche se così fosse vi sarei grato se poteste spiegarmi bene cosa succede. Grazie a tutti per le eventuali risposte.
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2004
Messaggi: 1685
|
Codice:
//file "nome.h" #ifndef NOME_H #define NOME_H //tutti gli include che vuoi //codice //fine file #endif ![]() |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jul 2006
Città: Fossombrone (Pesaro e Urbino)
Messaggi: 405
|
Quote:
|
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
![]()
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
brrrrr rabbrividisco
![]() |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jul 2006
Città: Fossombrone (Pesaro e Urbino)
Messaggi: 405
|
Quote:
Grazie mille per la risposta comunque |
|
![]() |
![]() |
![]() |
#7 | ||
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Quote:
Immagina che in un file .cpp ci sia: int pippo; e che 2 altri sorgenti .cpp includano il .cpp sopra. Sai che succede? Casino, perché in entrambi i moduli oggetto generati c'è la variabile pippo!
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
||
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
![]() EDIT: in C il discorso é uguale ma a me é capitato di avere un limite sulle righe del file (Turbo C o Tandem, non ricordo) quindi ho diviso il file in 2, in uno le funzioni, nell'altro il main ed altro. Ma sicuramente ero alle prime armi perché adesso farei una libreria col file delle funzioni e il modulo del main linkato con essa ![]()
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve Ultima modifica di trallallero : 22-01-2007 alle 13:40. |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jul 2006
Città: Fossombrone (Pesaro e Urbino)
Messaggi: 405
|
Quote:
|
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
Le classi é giusto che stiano in 2 files diversi e che abbiano i relativi .h ma il make lo deve sapere. Posti l'istruzione per compilare o tutto il makefile ?
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Quote:
|
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Jul 2006
Città: Fossombrone (Pesaro e Urbino)
Messaggi: 405
|
Quote:
Per quanto riguarda il makefile: in visual studio dove posso ricavare le istruzioni per il compilatore? |
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 1059
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Forward declaration: Codice:
/*File A.h*/ #ifndef _A_H #define _A_H #include "B.h" class A { ... private: B * b; }; #endif /*File B.h*/ #ifndef _B_H #define _B_H class A; class B { ... private; A * a; }; #endif Codice:
/*File A.cpp*/ #include "A.h" #include "B.h" A::MetodoCheUsaB() { B b(); ... } /*File B.cpp*/ #include "B .h" #include "A.h" B::MetodoCheUsaA() { A a(); ... } |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:55.