Ändern des Funktionszugriffsmodus in der abgeleiteten Klasse

Betrachten Sie den folgenden Codeausschnitt:

struct Base
{
  virtual ~Base() {}

  virtual void Foo() const = 0; //Public
};

class Child : public Base
{
  virtual void Foo() const {} //Private
};

int main()
{
  Child child;

  child.Foo(); //Won't work. Foo is private in this context.

  static_cast<Base&> (child).Foo(); //Okay. Foo is public in this context.
}

Ist das legal C++? "Diese" änderung der virtuellen Funktion die access mode in der abgeleiteten Klasse.

InformationsquelleAutor der Frage hlx236sk | 2010-01-26

Schreibe einen Kommentar