Я не совсем понимаю:частное наследование
class Base
{
public:
Base()
{
cout<<"Base" << endl;
}
virtual void call()
{
cout<<"Base call" << endl;
}
};
class Derived: private Base
{
public:
Derived()
{
cout<<"Derived" << endl;
}
};
int main(void)
{
Base *bPtr = new Derived(); // This is not allowed
}
Это потому, что кто-то может позвонить по телефону() с помощью bPtr, который на самом деле делается на производный объект? Или есть другая причина?
Это наследование реализации, а не наследование интерфейсов. –
@ Лоуренс: правда, но это просто спорная терминология. Я был обеспокоен внешним видом класса. –
«Это не наследование» «Абсолютно неправильно. Это ** является ** наследством, с частным доступом. – curiousguy