M
Misha111
Есть абстрактный класс (с абстрактными функциями) и его ребенок, где переопределены абстрактные функции родителя.
В общем вроде все просто, но при коде:
[codebox]class A
{
public:
A(void)
{
Open();
}
~A(void)
{
Close();
}
void Open(void)
{
internalOpen();
}
void Close(void)
{
internalClose();
}
protected:
virtual void internalOpen(void) = 0;
virtual void internalClose(void) = 0;
};
class B: public A
{
int x;
protected:
virtual void internalOpen(void)
{
x = 1;
}
virtual void internalClose(void)
{
x = 2;
}
};
B b;[/codebox]
ругается - вызов абстратной функции (internalOpen), но ведь он переопределен в В???
НЕ ПОНИМАЮ!!! Подскажите почему не работает.
В общем вроде все просто, но при коде:
[codebox]class A
{
public:
A(void)
{
Open();
}
~A(void)
{
Close();
}
void Open(void)
{
internalOpen();
}
void Close(void)
{
internalClose();
}
protected:
virtual void internalOpen(void) = 0;
virtual void internalClose(void) = 0;
};
class B: public A
{
int x;
protected:
virtual void internalOpen(void)
{
x = 1;
}
virtual void internalClose(void)
{
x = 2;
}
};
B b;[/codebox]
ругается - вызов абстратной функции (internalOpen), но ведь он переопределен в В???
НЕ ПОНИМАЮ!!! Подскажите почему не работает.