Как я могу получить свой базовый указатель для создания производного объекта и использования его функций? Есть ли способ набирать текст как java? Рассмотрим этот пример кода:с использованием базового указателя для использования функций производных объектов
int main(){
cBase *pBase = 0;
if (1 < 2)
{
pBase = new cDerived;
}
}
class cBase
{public:
virtual void printMe()
{
std::cout << "printed cBase" << endl;
}
};
class cDerived: public cBase
{public:
virtual void printMe()
{
std:: cout << "printed cDerived" << endl;
}
};
Однако, когда я это сделать; это дает мне ошибку «Выражение должно иметь тип класса».
cBase *pBase = 0;
if (1 < 2)
{
pBase = new cDerived;
pBase.printMe();
}
Где твое определение cBase? –
Нужно ли это? я просто сделал этот пример до –
'pBase.printMe();' ===> 'pBase-> printMe();' и 'printMe()' лучше быть членом (виртуальным или иным) 'cBase'. – WhozCraig