Mam klasy jak poniżej:Funkcja Friend z matrycy klasy
#include "Blarg.h"
// ...
class Foo : public Bar {
// ...
static double m_value;
// ...
};
a drugi tak:
template<class X, class Y>
class Blarg : public Bar {
// ...
void SetValue(double _val) { Foo::m_value = _val; }
// ...
};
Rejestracja Foo
„s m_value
jest prywatny (i chciałbym, aby utrzymać w ten sposób), myślałem, że zadeklaruję funkcję SetValue
jako przyjaciela klasy Foo
, aby mógł uzyskać dostęp do statycznego elementu, gdy jest potrzebny.
Próbowałem deklaracji wzdłuż tych linii w całym obszarze publicznym Foo
„s:
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);
... ale nie ma szczęścia w kompilacji. Jaka jest właściwa składnia tego, jeśli to możliwe?
Jaki błąd występuje w przypadku pierwszego? – Praetorian
"nie ma szczęścia w kompilacji" nie jest technicznym opisem błędu, z którym się spotkałeś. –
Musisz napisać ';' po każdej definicji klasy. –