|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
|
[C++] problemi con gli header miei
Allora ragazzi ho un problemaccio. non sono capace di farmi una mia libreria corretta poichè al momento della compilazione mi da errore il linker.
premetto che uso borland c++ allora suddivido il mio bel listato in 3 files: un header.h dove ho messo la dichiarazione delle classi un header.cpp dove ho incluso header.h ed ho definito le funzioni di classe un main.cpp dove ho incluso header.h ed ho definito la funzione main. A questo punto sorge il problema: dovrebbe essere corretto in questo modo, invece l'unico modo per compilare è invece che includere header.h metterci header.cpp, allora funziona. l'errore che mi da è come se non trovasse la definizione delle funzioni di classe in header.cpp se senza che vi incollo il codice riuscite a dirmi dove sbaglio ok.. altirmenti lo incollo. grazie a tutti, ciao
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W Ultima modifica di Vecchia Spugna : 12-09-2006 alle 13:38. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
Quote:
|
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
|
non funziona, perchè in questo modo ha le definizioni prima delle dichiarazioni
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
posta va che un'immagine ha piú di 1000 parole
__________________
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: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
|
scatola.h #ifndef SCATOLA_H#define SCATOLA_H #include <clx.h> #pragma hdrstop //--------------------------------------------------------------------------- using namespace std; #pragma argsused class scatola { public: char tore[20]; char uto[20]; void visita(); void contenuto(); void contenitore(); }; #endif //--------------------------------------------------------------------------- scatola.cpp #ifndef SCATOLA_CPP#define SCATOLA_CPP #include <clx.h> #include <iostream> #include "scatola.h" #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused using namespace std; void scatola::visita() { cout << endl << tore << "\n" << uto; } void scatola::contenuto() { cout << "contenuto: " ; cin >> uto; cout << endl; } void scatola::contenitore() { cout << "contenitore: " ; cin >> tore; cout << endl; } #endif //--------------------------------------------------------------------------- scatolone.cpp #include <clx.h>#include <conio> #include <iostream> #pragma hdrstop #include "scatola.h" //--------------------------------------------------------------------------- #pragma argsused using namespace std; int main(int argc, char* argv[]) { scatola scatolone; scatolone.contenitore(); scatolone.contenuto(); scatolone.visita(); getch(); return 0; } //---------------------------------------------------------------------------
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
Quote:
Codice:
---header.h--- //dic. classe ---header.cpp--- //def. funz. classe ---header2.h--- #include "header.h" #include "header.cpp" ---main.cpp--- #include "header2.h" //resto |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
???il problema suo penso sia che non ha creato un progetto quindi non compila tutto.
__________________
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 |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
|
ma scusate.. quando aggiungo ad esempio stdio.h.. non dovrebbe essere la stessa identicissima cosa? quindi aggiungere solo il .h
il compilatore vede che sono collegati perchè hanno lo stesso nome?
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
Quote:
|
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
|
ipotizzo visto che sono molto ignorante
quindi quando includo le librerie standard, che da qualche parte hanno anche l'intestazione e non solo l'header.. come fa il compilatore ad includerle?
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
|
ho trovato 3 files strutturati come i miei sicuramente funzionanti.. e il compilatore mi da lo stesso identico errore.. quindi l'errore non è di programmazione ma di compilazione. resta il dubbio su come sia invece possibile includere soglo gli header delle librerie di cui lui conosce il path
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W |
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
I file cpp vengono tutti compilati in linguaggio oggetto dall'IDE...e dopo linkati... E' solo a questo punto che i vari cpp si devono incontrare... |
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
Forse mi sbaglio (alla cieca é difficile) ma sono arcisicuro che il compilatore non compila uno dei 2 .cpp che hai fatto. Se non crei un progetto dove specifichi quali files sono da compilare o comunque non glielo dici in qualche modo, il compilatore non puó inventarselo. Facci vedere l'errore e se trovi un file di nome makefile magari ce lo incolli quí
__________________
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 |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
|
penso proprio che tu abbia ragione faccio 1 pò di prove e ti dico
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
|
cvd.
trallallero sei grande in pratica questo schifo di ambiente di sviluppo gestisce le icone alla perfezione e non si preoccupa di spiegare bene cosa va a compilare. c'è una cosina particolare da fare in modo che si aspetti che quel file cpp venga aggiunto al progetto, mentre al progetto stesso non devo aggiungere l'header e il cpp corrispondente all'header. grazie a tutti ciao
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:38.











???








