kann mir einer der C++ Experten hier erklären, worin der Sinn besteht, eine öffentliche, virtuelle Methode einer Basisklasse in einer davon abgeleiteten Klasse privat zu überschreiben?
Hier mal ein Beispiel:
Code: Alles auswählen
class PolymorphicPublic
{
public:
virtual void MakeIt()
{
std::cout << "I'll make it so..." << std::endl;
}
};
class OverridePrivately : public PolymorphicPublic // keep visibility
{
private: // declaration with different visibility!!!
void MakeIt() override
{
std::cout << "I'll make it overidden..." << std::endl;
}
};
Code: Alles auswählen
PolymorphicPublic *baseObj = new OverridePrivately();
baseObj->MakeIt();
Code: Alles auswählen
OverridePrivately obj;
//obj.MakeIt() // cannot call it!