ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4442149
Jetzt (Chat):
13 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Coding-Foren
Sourcecode-Probleme
Re: C++ Templates
Normal
AutorThema
GO Offline
ZFX'ler


Registriert seit:
08.01.2003

Berlin
C++ TemplatesNach oben.
Hallo, hab nen problem mit C++ templates in linux mit g++...

Habe also eine Klasse mit puren virtuellen funktionen und ein paar die implementiert sind:

Config.h:
Code:
template<class type>
class Config : public Singleton
{
  ...
  virtual void load() = 0;
  virtual void unload() = 0;

  std::string getProperty(...);
  ...
  char* stoa(std::string string)
  {
    //do something
  };
}


Config.cpp:
Code:
template<class type>
std::string Config::getProperty(...)
{
}
....



Nun mein Problem ist, dass das linken in der Klasse
class ServerConfig : public Config
{
....
}

fehlschlägt

Fehlermeldung ist:
undefined reference to Config::getProperty(...)

Die reference auf Config::stoa(...) findet er jedoch (direkt in der Config.h definiert zu test zwecken...)

Offensichtlich stimmt also was mit der Config.cpp nicht aber im moment seh ich mal net was da falsch ist
21.12.2008, 16:41:23 Uhr
Krishty Offline
ZFX'ler


Registriert seit:
01.02.2004

Nordrhein-Westfalen
342173470
Re: C++ TemplatesNach oben.
Template-Funktionen müssen immer bei ihrer Deklaration auch definiert werden. Du kannst sie nicht von ihrer Klasse trennen, es sei denn, es handelt sich um eine Spezialisierung.


Mit dem zukünftigen Standard wird das möglich sein, indem du sie extern deklarierst. Ich glaube auch, der aktuelle GCC implementiert das bereits. Ob und wie man das zum laufen bekommt, kann ich dir aber nicht sagen, und ich würde davon abraten bis C++09 vollständig implementiert ist.
21.12.2008, 16:47:04 Uhr
GO Offline
ZFX'ler


Registriert seit:
08.01.2003

Berlin
Re: C++ TemplatesNach oben.
Danke dir,

Hab mich entschieden "ServerConfig" nun von der template losen "Config" Klasse und der "Singleton" template Klasse erben zu lassen. Finds dann sorum besser als alles in die header datei zu schreiben

Funktioniert jedenfalls bestens, ein hoch auf mehrfach verebung
21.12.2008, 17:07:44 Uhr
B.G.Michi Offline
ZFX'ler


Registriert seit:
07.03.2006

Bayern
409978663
Re: C++ TemplatesNach oben.
öhm vlt irre ich mich auch aber benenn die "Config.cpp" in "Config.inl" (=".h") um und #include sie am ende der "Config.h"
22.12.2008, 00:19:44 Uhr
klickverbot Offline
ZFX'ler


Registriert seit:
24.08.2008

Österreich
Re: C++ TemplatesNach oben.
Zitat von B.G.Michi:
öhm vlt irre ich mich auch aber benenn die "Config.cpp" in "Config.inl" (=".h") um und #include sie am ende der "Config.h"


Was dann letztlich aber auch nichts anderes ist, als die Definitionen direkt in die Header-Datei zu schreiben ;)
22.12.2008, 14:32:12 Uhr
Normal


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel