Скажем, у меня есть следующие иерархии классов в C++:Полиморфных функций с параметрами из иерархии классов
class Base;
class Derived1 : public Base;
class Derived2 : public Base;
class ParamType;
class DerivedParamType1 : public ParamType;
class DerivedParamType2 : public ParamType;
И я хочу полиморфную функцию, func(ParamType)
, определенной в Base
принимать параметр типа DerivedParamType1
для Derived1
и параметр типа DerivedParamType2
для Derived2
.
Как это можно сделать без указателей, если это возможно?
Я признаю, что проблема с «указателями» немного. Вы ожидаете, что полиморфизм возникнет только при использовании указателей: /? –
Я имел в виду, что я предпочел бы, чтобы параметры, переданные функции, предпочтительно были бы объектом или ссылкой, а не указателем. – myahya