Ich habe eine Familie von Klassen, und jede Unterklasse benötigt eine Karte, aber die Schlüssel werden verschiedene Typen haben, obwohl sie beide genau die gleichen Operationen mit der Karte ausführen. Auch der Wert in beiden Fällen wird Zeichenfolge sein. Bisher habe ich Code ähnlich dem unten stehenden Beispiel, mein Ziel ist es, Code wieder zu verwenden, indem einen generischen Schlüssel hat. ohne zusätzliche Bibliotheken neben STLC++ Std :: Map-Klasse mit generischem Schlüssel
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;
};
Was meinst du _generic key_? Eine andere Vorlage? Eine 'std :: Variante'? –
Gibt es neben anderen Kartentypen noch weitere Unterschiede zwischen Unterklassen? – balki
balki: Beide Unterklassen führen sehr unterschiedliche Operationen aus, aber das Speichern und Abrufen von Daten in der Map ist identisch und einige andere Codes gemeinsam – ulitosCoder