Domanda

Voglio sapere come Qvariant può internamente negozi, int, qmap, qlist, ...

Voglio dire, cos'è la struttura/implementazione interne dei dati? Qual è il sovraccarico di conservare e recuperare i tipi (int, float) in Qvariant?

È stato utile?

Soluzione

Una rapida occhiata al codice rivela che a QVariant è fondamentalmente a union di diversi tipi primitivi (int, float ecc.), a QObject puntatore e a void* puntatore per qualsiasi altra cosa che non sia un QObject e non un primitivo. C'è anche un membro dei dati di tipo che gli consente di sapere ciò che è effettivamente archiviato lì. Il sovraccarico sembra non essere molto più che archiviare a un membro di una struttura, controllandolo per la compatibilità del tipo e eventualmente fare una conversione (int per fluttuare ad esempio)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top