|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | ||
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
[C++]Problema con template
Mi sono creato una class Vettore che implementa i seguneti metodi:
Quote:
Quote:
|
||
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Il problema fondamentale sta nel fatto che il compilatore deve generare il codice opportuno per ogni tipo utilizzato come parametro. Ma quando compili il file Vettore.cpp il compilatore non sa che poi vuoi utilizzarlo con int come parametro e quindi il codice non viene generato.
Per risolvere il problema c'e' piu' di una soluzione, la piu' pratica e' quella di includere il sorgente nell'header invece di fare il contrario (e' quella adottata dalla libreria standard del C++, perlomeno fino all'ultima volta che ho controllato In Vettore.h dovresti quindi aggiungere Codice:
#ifndef VETTORE_H #define VETTORE_H // Per evitare inclusioni multiple, andrebbe fatto con ogni file.h Codice:
#include "Vettore.cpp" #endif Ovviamente devi togliere la riga #include "Vettore.h" dal file Vettore.cpp Dimmi se ti funziona ciao Marco |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
nn va lo stesso e mi da 14 errori
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Che errori ti da ? (non ho il compilatore sottomano per aiutarti... )
|
|
|
|
|
|
#5 | |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
mi da sempre questi:
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
...
|
|
|
|
|
|
#7 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
hai ragione!
Cazzo ekko cosa ho dimeticato! Pero..............almeno sto migliorando, cionci o mio maestro? |
|
|
|
|
|
#8 | |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
ora mi da:
Quote:
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Devi implementare le funzioni...altrimenti è ovvio che ti dia questi errori !!!
|
|
|
|
|
|
#10 | |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Quote:
C'è tutto il progetto |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho fatto casino...andava bene come avevi fatto te...senza il virtual davanti al distruttore...
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 428
|
Il suggerimento di /\/\@®¢Ø e' giusto.
Probabilmente non hai ricompilato completamente il progetto, dato che hai riportato gli stessi identici errori, oppure hai gli header files precompilati. In tal caso disattiva la funzione e riprova. Riguardo al viratual sul distruttore e' corretto. E' obbligatorio (a meno di non avere leaks) metterlo quando si vuole permettere di sottoclassare la classe che si sta scrivendo.
__________________
PC: Phenom 2 955, 4 GB RAM DDR3, 2 x ATI HD 7870 Ghz edition |
|
|
|
|
|
#13 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
risolto!
Ho incluso il files *.cpp e nn quello .h . Vi allego la mia soluzione |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Guarda...è una cosa davvero strana... Sto avendo anche io questi strani errori...e non capisco il perchè ci siano...
Dovrebbe bastare include il .h... Il bello è che se si infilano anche errori nel .cpp li ignora completamente...Vettore.cpp non lo compila e nemmeno lo linka... Bah...mai successa una cosa del genere... Il bello è che me li da sia con VC++ che con Dev-C++... |
|
|
|
|
|
#15 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
hai provato il mio ultimo rar?
Cmq a me includendo il .cpp nn mi da errore e funzia bene! include il cpp perche ho scoperto che i template nn sono compilati ma sono costruiti sul momento |
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
L'ho provato...ma includere il .cpp non è un modo giusto di operare--- Deve andare anche includendo il solo .h... |
|
|
|
|
|
|
#17 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
andrebbe con il solo .h se io implementassi i template in esso
|
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Prova a dichiarare qualsiasi classe e ad includere solo la dichiarazione le .h...e vedrai che il .cpp se incluso nel progetto viene compilato e linkato all'eseguibile... |
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 428
|
Confermo anche io: il codice delle funzioni / classi template deve essere visibile nel punto dove viene usato. Questo almeno e' vero per molti compilatori attuali (io uso il gcc in ambiente Solaris ed ho lo stesso identico comportamento che avete evidenziato nel thread).
Sembra come se le funzioni / classi template siano delle macro.
__________________
PC: Phenom 2 955, 4 GB RAM DDR3, 2 x ATI HD 7870 Ghz edition |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:06.



















