template problem:
-
folgende klasse:
class Application { //.... template <class t> void run(t arg); //.... }; //Implementation in Datei "Application.cpp" template <class t> void Application::run(t arg) { arg.run(); }wird in folgender klasse verwendet:
class Game { //... void run(); //... } //Implementation in "game.cpp" void Game::run() { Application a; a.run(this); }(grobe Struktur, hier irgendwo liegt der Fehler, ich weiss nur nich wo)
folgende Fehlermeldung:
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __thiscall Application::run<class Game *>(class Game *)" (??$run@PAVGame@@Application@@QAEXPAVGame@1@@Z)" in Funktion ""public: bool __thiscall Game::run(void)" (?run@Game@@QAE_NXZ)
wo liegts?
edit: was is in poker ein shootout turnier? (holdem)
-
Wenn Du Templates verwendest, kannst Du nicht in Header- und Implementierungsdateien trennen. Dazu gibt es im Standard zwar das Schlüsselwort 'extern', das kennt aber kaum ein Compiler. => Pack die Implementierung der Template-Funktion in den Header.
Von Poker habe ich keine Ahnung.
-
-
Konrad Rudolph schrieb:
Dazu gibt es im Standard zwar das Schlüsselwort 'extern', das kennt aber kaum ein Compiler.
Abgesehen davon heißt das Schlüsselwort eh export.
-
GPC schrieb:
Abgesehen davon heißt das Schlüsselwort eh export.
OMG. Wieso habe ich denn 'extern' geschrieben?
