Portál AbcLinuxu, 6. května 2025 16:13
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.