Я ищу лучший способ для этого. У меня есть кусок кода, который должен обрабатывать несколько разных объектов, которые содержат разные типы. Структура, которая у меня есть, выглядит следующим образом:
class Base
{
// some generic methods
}
template <typename T> class TypedBase : public Base
{
// common code with template specialization
private:
std::map<int,T> mapContainingSomeDataOfTypeT;
}
template <> class TypedBase<std::string> : public Base
{
// common code with template specialization
public:
void set( std::string ); // functions not needed for other types
std::string get();
private:
std::map<int,std::string> mapContainingSomeDataOfTypeT;
// some data not needed for other types
}
Теперь мне нужно добавить некоторые дополнительные функции, которые применяются только к одному из производных классов. В частности, вывод std :: string, но тип на самом деле не имеет значения. Класс достаточно большой, и я бы предпочел не копировать все это, а просто специализировать небольшую его часть Мне нужно добавить пару функций (и аксессор и модификатор) и изменить тело некоторых других функций. Есть ли лучший способ сделать это?