typenameパラメータの保護されたメソッドにアクセスできるテンプレートが必要です。どのように私はその仕事をすることができますか?例えばテンプレートからクラス保護されたメソッドを呼び出す
:
class Foo{
...
protected:
int Bar();
}
template <class T> FooTempl{
...
int SomeMethod(T* ptr) { return ptr->Bar();};
...
}
理由はなく、他の外部の呼び出し元に、私はこの方法Foo::Bar()
がテンプレートにアクセスできるようにするということです。かつての派生を持っているだろうFoo
の友人としてFooTempl
を宣言するに
template<typename T> friend class FooTempl;
アクセスレベルの横には、 'T-> Bar()'ではなく、 'ptr-> Bar()'にする必要があります。 – Nawaz
確かに、誤植...ありがとう – littleadv
なぜFooに直接友達を追加できませんか?体? –