Вот мой код -
#include<iostream>
using namespace std;
class base
{
public:
void sid()
{
}
};
class derived : private base
{
public:
void sid()
{
}
};
int main()
{
base * ptr;
ptr = new derived; // error: 'base' is an inaccessible base of 'derived'
ptr->sid();
return 0;
}
Это дает ошибку времени компиляции.
error: 'base' is an inaccessible base of 'derived'
Поскольку компилятор попытается вызвать базовый класс sid()
, почему я получаю эту ошибку? Может кто-нибудь объяснить это.
virtual
. Какую именно ошибку вы получаете? - person Dirk   schedule 09.09.2010sid()
. Вы используете частное наследование, поэтому преобразование изderived*
вbase*
не выполняется. Это то, о чем вы спрашиваете, или это как-то связано с методомsid()
? - person Naveen   schedule 09.09.2010private:
? Зачем утечка памяти в простой программе? Либоdelete
, либо используйтеauto_ptr
. - person GManNickG   schedule 09.09.2010