Ich habe eine Klasse wie folgt aus:Freund-Funktion aus einer Templat-Klasse
#include "Blarg.h"
// ...
class Foo : public Bar {
// ...
static double m_value;
// ...
};
Und ein anderes wie folgt aus:
template<class X, class Y>
class Blarg : public Bar {
// ...
void SetValue(double _val) { Foo::m_value = _val; }
// ...
};
Seit Foo
‚s m_value
privat ist (und ich möchte halten Auf diese Weise dachte ich, ich würde die SetValue
Funktion als Freund der Klasse Foo
deklarieren, damit sie bei Bedarf auf das statische Element zugreifen kann.
Ich habe versucht, Erklärungen in dieser Richtung innerhalb Foo
‚s öffentlichen Bereich:
template<class X, class Y> friend void Blarg<X, Y>::SetValue(double _val);
template<class X, class Y> friend void Blarg::SetValue(double _val);
friend void Blarg::SetValue(double _val);
... aber kein Glück bei der Zusammenstellung. Was ist die richtige Syntax dafür, wenn möglich?
Welchen Fehler bekommen Sie mit dem ersten? – Praetorian
"kein Glück beim Kompilieren" ist keine technische Beschreibung des aufgetretenen Fehlers. –
Sie müssen nach jeder Klassendefinition ein '' 'schreiben. –