У меня есть класс классов, и каждому подклассу требуется карта, но ключи будут иметь разные типы, хотя оба они будут выполнять те же самые операции с картой. Также значение в обоих случаях будет строкой. До сих пор у меня есть код, похожий на приведенный ниже пример, моя цель состоит в том, чтобы повторно использовать код, , имеющий общий ключ. без использования каких-либо дополнительные библиотек, кроме STLC++ std :: класс карты с общим ключом
class A{
public:
/*
* More code
*/
};
class subA1 : public A{
public:
void insertValue(long id, std::string& value){
if(_theMap.find(id) == _theMap.end())
{
_theMap[id] = value;
}
}
private:
std::map<long,std:string> _theMap;
};
class subA2 : public A{
public:
void insertValue(std::string& id, std::string& value){
if(_theMap.find(id) == _theMap.end())
{
_theMap[id] = value;
}
}
private:
std::map<std::string,std:string> _theMap;
};
Что значит «generic key_»? Другой шаблон? «Std :: variant»? –
Помимо наличия разных типов карт, существуют ли другие различия между подклассами? – balki
balki: оба подкласса выполняют очень разные операции, но хранилище и поиск данных на карте идентичны, а некоторые другие общие коды – ulitosCoder