Anbetracht dieser Klasse:Kann eine abgeleitete Klasse auf eine private Methode einer geschützten inneren Klasse der übergeordneten Klasse zugreifen, die ein Freund der inneren Klasse ist?
class Matchable
{
protected:
class Match {
friend class Matchable;
void append(const Match& match) {}
};
public:
virtual bool match(const Source& source) = 0;
};
... wo die äußeren Klasse Matchable
ein Freund der inneren Klasse ist Match
, und unter Berücksichtigung dieser Klasse:
class Literal : public Matchable {
bool match(const Source& source) override {
Matchable::Match m;
Matchable::Match cm;
m.append(cm);
return true;
}
}
... wo Literal
abgeleitet ist von Matchable
, ich bin in der Lage, Matchable::Match
in Literal::match()
ohne Probleme zu instanziieren, aber ich bin nicht in der Lage, die private Methode Matchable::Match::append()
, wo ich erwartet Literal
erben die "f Freundlichkeit "von Matchable
.
Ist dieses erwartete Verhalten und wenn ja, gibt es eine Möglichkeit, Literal
Zugriff auf private Methoden der übergeordneten inneren Klasse Match
?
"Kann eine abgeleitete Klasse auf eine private Methode einer geschützten inneren Klasse der Elternklasse zugreifen, die ein Freund der inneren Klasse ist?" ... Nur wenn es Brawndo benutzt .. Es hat Elektrolyte! – txtechhelp