Скажем, у нас есть абстрактный базовый класс IBase
с чисто виртуальными методами (интерфейс).
Затем мы получаем CFoo
, CFoo2
из базового класса.
Иу нас есть функция, которая знает, как работать с IBase.
Foo(IBase *input);
Обычный сценарий в этих случаях выглядит следующим образом:
IBase *ptr = static_cast<IBase*>(new CFoo("abc"));
Foo(ptr);
delete ptr;
Но управления указателями лучше избегать, поэтомуесть ли способ использовать ссылки в таком сценарии?
CFoo inst("abc");
Foo(inst);
, где Foo
:
Foo(IBase &input);