Как привести указатель на базовый класс к указателю на наследник?

Есть 3 класса: родительский Pair, и два наследника Money и Complex. По заданию нужно завести три указателя на объекты Pair, и затем с помощью них показать весь функционал Money и Complex. По ходу программы с помощью p1=dynamic_cast<Money*>(p1) делаю преобразование, но для p1 все еще недоступны методы класса Money. Как можно это исправить?


Ответы (1 шт):

Автор решения: Harry
Pair * p1 = new Money;
Pair * p2 = new Complex;

Money * m = dynamic_cast<Money*>(p1);
m->ФункцияMoney();

Примерно так. А вы пытаетесь привести указатель на Pair к указателю на Money явно, а потом неявно снова опускаете его до указателя на Pair. Понятно, что от хождения по кругу толку нет...

→ Ссылка