Klassenvorlagen-Member-Spezialisierung, mehrere Definitionen
Posted: 19 Jan 2025, 17:01
Ich stecke beim Definieren einer Spezialisierung für eine Mitgliedsfunktion innerhalb einer Klassenvorlage fest. Wenn ich die vollständig spezialisierte Mitgliedsfunktion außerhalb der Klasse definiere und sie dann in meiner Hauptklasse verwende, beschwert sich der Linker über mehrere Definitionen:
in template.hpp:
in templates.cpp:
in main.cpp:
Der Fehler besagt, dass der Linker zwei Definitionen derselben Funktion gefunden hat, aber ich definiere die Funktion nicht, ich verwende sie!
in template.hpp:
Code: Select all
template
class MyClassTemplate
{
public:
MyClassTemplate(const T &t) : member(t)
{
}
const T GetMember() const
{
return member;
}
private:
T member;
};
Code: Select all
template
const double MyClassTemplate::GetMember() const
{
return member * 2.0;
}
Code: Select all
MyClassTemplate mctd(10.9);
mctd.GetMember();