2
なぜ派生クラスは、そのテンプレートベースの保護された基底クラスメンバにアクセスする権限がありませんか?基本クラスとしてのC++テンプレートparam
class MyBase {
protected:
int foo;
};
template<typename Impl>
class Derived : public Impl {
public:
int getfoo() {
return static_cast<Impl*>(this)->foo;
}
};
コンパイラはfooが保護されていると不平を言います。どうして?
error: int MyBase::foo is protected
...または' return Impl :: foo; ' 。 –
またはreturn foo; //私のコメントを長くして、stackoverflowが私にそれを投稿させるようにするための不要なコメント。 –
'return foo;'は間違いなく動作しません。 –