Warum ist eine abgeleitete Klasse nicht berechtigt, auf ihr geschütztes Basisklassenmitglied zuzugreifen, wenn sie templatesiert?C++ Template-Parameter als Basisklasse
class MyBase {
protected:
int foo;
};
template<typename Impl>
class Derived : public Impl {
public:
int getfoo() {
return static_cast<Impl*>(this)->foo;
}
};
Der Compiler beschwert foo geschützt ist. Warum?
error: int MyBase::foo is protected
... oder' return Impl :: foo; ' . –
oder zurück foo; // ein unnötiger Kommentar, um meinen Kommentar lang genug zu machen, damit ich ihn mit stackoverflow schreiben kann. –
'Return foo;' funktioniert definitiv nicht. –