Portál AbcLinuxu, 5. listopadu 2025 04:46
class JsonNode {
public:
virtual ~JsonNode() {};
virtual JsonNodeType get_type() = 0;
};
a třídy dědící JsonNode: JsonArray, JsonObject, JsonNumber, ...
Teď bych potřeboval vytvořit třídu JsonPair, která bude spojovat JsonString a libovolnou třídu, která dědí JsonNode - je to pro implementaci JsonObject, kdy klíč je vždy string a hodnota je lib. datový typ JSON.
Pokud bych jel "postaru", tak bude JsonPair ukládat pointer JsonNode *. Do něj uložím co je potřeba a když budu s daty pracovat, tak si nejprve zjistím, co je to za typ a následně budu volat jednotlivé metody, které se budou lišit dle dat. typu.
Nyní bych chtěl tento problém řešit s využitím move semantiky - abych se nemusel o pointery Json objektů starat během přiřazování, řešit co s pointerem, kdy odkazovanou třídu využiju jinde (a nebo ne), kdy zavolat delete.
Move konstruktor a operátor přiřazení (&&) mám pro každou třídu hotový. Teď bych to potřeboval "napojit" v třídě JsonPair, kde může být víc jednotlivých tříd. A zde jsem se zasekl.
Můžete mi prosím zaslat nějaký návrh, jak toto vyřešit? Jde mi o pochopení, jak to funguje...
Díky moc!
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.