|
| Instansiering af Template-klasse Fra : SørenKJ |
Dato : 17-11-01 16:05 |
|
hej,
Hvis jeg instansierer en template-klasse i en anden fil (end den cpp-fil, i
hvilken template-klassen er defineret), får jeg en linke-fejl (fra MS VC++).
hvad bør jeg gøre? (bør man inkludere en cpp-fil?)
vh Søren
| |
Jonas Meyer Rasmusse~ (17-11-2001)
| Kommentar Fra : Jonas Meyer Rasmusse~ |
Dato : 17-11-01 17:18 |
|
Det hedder sig vistnok at når man bruger templates,
skal man sørge for at både erklæringen og implementationen af funktionen
ligger
i header-fil, således enhver der inkluderer den kan instantiere dine
templates.
Mvh Jonas
| |
SørenKJ (18-11-2001)
| Kommentar Fra : SørenKJ |
Dato : 18-11-01 08:33 |
|
Jonas Meyer Rasmussen wrote in message <9t62iv$945$1@eising.k-net.dk>...
>Det hedder sig vistnok at når man bruger templates,
>skal man sørge for at både erklæringen og implementationen af funktionen
>ligger
>i header-fil, således enhver der inkluderer den kan instantiere dine
>templates.
ok, men så er der det problem, at vc nægter at oversætte .h-filer..
vh Søren
| |
Jonas Meyer Rasmusse~ (18-11-2001)
| Kommentar Fra : Jonas Meyer Rasmusse~ |
Dato : 18-11-01 11:59 |
|
Du kan jo prøve at komme med et simpelt eksempel på hvad den nægter
og oversætte?
Det er rigtigt at VC har nogle problemer med specialisering af templates,
men
det er sikkert ikke det som er dit problem?
Mvh
Jonas
| |
SørenKJ (19-11-2001)
| Kommentar Fra : SørenKJ |
Dato : 19-11-01 08:38 |
|
Jonas Meyer Rasmussen wrote in message <9t84aa$eu$1@eising.k-net.dk>...
>Du kan jo prøve at komme med et simpelt eksempel på hvad den nægter
>og oversætte?
Det er simpelthen alle filer med endelsen '.h'
Men der er ikke noget problem, for jeg kan bare definere klassen i
..cpp-filen og så inkludere .cpp-filen. Det er måske bare ikke så pænt, hvis
standarden er som du siger.
vh Søren
| |
Thomas Krog (19-11-2001)
| Kommentar Fra : Thomas Krog |
Dato : 19-11-01 12:49 |
|
Du skal heller ikke sætte den til at oversætte .h filer. Det kan fx. gøres
sådan:
---------a.h------------
template<class A>class Test{};
---------b.cpp-----------
#include "a.h"
Test<int> bUser;
---------c.cpp--------------
#include "a.h"
Test<char> cUser;
Og nu kan du så nøjes med at oversætte cpp-filerne
| |
|
|