Скажем, у нас есть абстрактный базовый класс 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);