私はこのようなクラスを持っています:
#include "Blarg.h"
// ...
class Foo : public Bar {
// ...
static double m_value;
// ...
};
そして、このような別のもの:
template<class X, class Y>
class Blarg : public Bar {
// ...
void SetValue(double _val) { Foo::m_value = _val; }
// ...
};
はプライベートなのでFoo
(m_value
私はそのままにしておきたい)、SetValue
関数をクラスのフレンドとして宣言してFoo
、必要に応じて静的メンバーにアクセスできるようにしようと考えました。
Foo
の公開領域内で次の行に沿って宣言を試みました。
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);
...しかし、コンパイルに失敗しました。可能であれば、これの適切な構文は何ですか?