Serializační konstruktor je celkem jednoduchý na napsání (je nutné dát pozor na věci, co se musí vyplnit už v konstruktoru, aby byly serializovány ve stejném pořadí, v jakém je konstruktor vytáhne) ...
Ano, a to je přesně o tom. Totiž, pokud chci využit deserializační konstruktor, musí i member proměnné (a to tedy všechny) používat deserializační konstruktory, musí být ve správném pořadí (a nejsem si jist, jestli pořadí inicializace je v normě C++ zaručeno), nebo v druhé variantě se ti to rozpadne na dvě části, což jsi ukázal v příkladu.
- konstrukce ve výchozím stavu
- deserializace, která stav změní.
Není to až tak velká výhoda, aby se vyplatilo zahazovat oboustrannost serializace ... "i zvenku" (z API ... vlastně máš tady dvě metody místo jedné, byť vnitřně se z druhé volá první)