Zur Zeit habe ich ein Problem bei der Implementierung einer Methode außerhalb der Klasse. Innerhalb funktionierts. Ich habe den Code in 3 Compilern getestet. Im Borland C++ Builder 5 und im Visual C++ 6 geht's nicht, beim Visual Studio 2003/2005 schon. Aber hier erstmal mein Code:
=======================================
CODE:
=======================================
class C_KLASSE
{
public:
template<class Type> void Methode(Type *Object, void(Type::*Pt2Method)(void));
};
template<class Type> C_KLASSE::Methode(Type *Object, void(Type::*Pt2Method)(void))
{
(Object->*Pt2Method)();
}
=======================================
Hier bringt mir der Borland folgende Fehlermeldung
[C++ Fehler]Unit1.cpp(15):E2316 'C_KLASSE::Methode(Type *,void(struct::*)())' ist kein Element von 'C_KLASSE'
und der Visual 6 kann den Code nicht auflösen (unresolved External). Wie schon gesagt, innerhalb der Klasse funktioniert es einwandfrei aber ich will nur sehr ungern eine Zeile Code in meine Header eintragen (um genau zu sein will ich es überhaupt nicht).
Ich bedanke mich schon mal im Voraus für jegliche Hilfe.
=======================================
CODE:
=======================================
class C_KLASSE
{
public:
template<class Type> void Methode(Type *Object, void(Type::*Pt2Method)(void));
};
template<class Type> C_KLASSE::Methode(Type *Object, void(Type::*Pt2Method)(void))
{
(Object->*Pt2Method)();
}
=======================================
Hier bringt mir der Borland folgende Fehlermeldung
[C++ Fehler]Unit1.cpp(15):E2316 'C_KLASSE::Methode(Type *,void(struct::*)())' ist kein Element von 'C_KLASSE'
und der Visual 6 kann den Code nicht auflösen (unresolved External). Wie schon gesagt, innerhalb der Klasse funktioniert es einwandfrei aber ich will nur sehr ungern eine Zeile Code in meine Header eintragen (um genau zu sein will ich es überhaupt nicht).
Ich bedanke mich schon mal im Voraus für jegliche Hilfe.
Comment