Есть ли способ, которым я могу сделать следующую работу, или есть работа вокруг? Я должен что-то упустить.C++ полиморфизм - доступ к производным функциям с базовым указателем
class base
{
public:
int someInt;
virtual void someFunction(){}
};
class derived : public base
{
public:
void someFunction(){}
void anotherFunction(){}
};
int main (int argc, char * const argv[]) {
base* aBasePointer = new derived;
aBasePointer->anotherFunction();
delete aBasePointer
return 0;
}
Вам нужно 'anotherFunction()' также быть виртуальным в базе. Или назовите его указателем на производный. На данный момент база ничего не знает об этой функции. – BoBTFish
Что такое * реальные * функции? почему ты хочешь сделать это? –
Он должен быть виртуальным и определен в базе. Это не поможет, если вы добавите новую виртуальную функцию в Derived. –