Pourquoi QString devrait hériter de std::string ? Ca n'a pas de sens, QString n'est pas un sur-ensemble de std::string , c'est un ensemble distinct. QString sait faire des choses que std::string ne sait pas faire, comme du partage implicite de la mémoire, des conversions dans différents types d'encodage (latin1, utf8, etc), du découpage en sous-chaînes. QString dispose d'optimisations spécifiques qui sont basées sur la manipulation brute des données de la chaîne, qui ne seraient pas possibles si QString en maitrisait pas la structure de donnée de stockage (en gros, si il utilisait std::string). De plus QString offre des garanties en terme de gestion de thread qui ne sont pas nécessairement offertes par std::string.
Par contre, il est possible de convertir facilement une std::string en QString et vice-versa, d'utiliser des algorithme de la STL sur des QString, etc etc.
[^] # Re: Boost ? c'est quoi ?
Posté par Philippe F (site web personnel) . En réponse à la dépêche Sortie de Boost 1.46. Évalué à 5.
Pourquoi QString devrait hériter de std::string ? Ca n'a pas de sens, QString n'est pas un sur-ensemble de std::string , c'est un ensemble distinct. QString sait faire des choses que std::string ne sait pas faire, comme du partage implicite de la mémoire, des conversions dans différents types d'encodage (latin1, utf8, etc), du découpage en sous-chaînes. QString dispose d'optimisations spécifiques qui sont basées sur la manipulation brute des données de la chaîne, qui ne seraient pas possibles si QString en maitrisait pas la structure de donnée de stockage (en gros, si il utilisait std::string). De plus QString offre des garanties en terme de gestion de thread qui ne sont pas nécessairement offertes par std::string.
Par contre, il est possible de convertir facilement une std::string en QString et vice-versa, d'utiliser des algorithme de la STL sur des QString, etc etc.