4 votes

C++ : Est-il recommandé de créer sa propre classe String ?

Je suis en train de lire un livre de didacticiels C++, et l'auteur dit que la plupart des compilateurs C++ incluent une bibliothèque de classes String, mais même si c'est le cas, il est recommandé de créer votre propre classe String. Malheureusement, l'auteur ne dit pas pourquoi. Quelqu'un est-il d'accord ou non et pourquoi ?

J'utilise Xcode et la classe String qui est fournie me semble correcte, mais là encore, je ne travaille avec elle que depuis quelques heures, donc je ne connais pas les limites.

Merci d'avance.

6voto

Ed S. Points 70246

Il me semble que vous avez un vieux livre.

La bibliothèque standard C++ comprend la fonction std::string et vous devriez l'utiliser au lieu d'inventer la vôtre et de corriger des bogues qui ont déjà été rencontrés et corrigés dans une bibliothèque largement utilisée.

Comme vous êtes un débutant, oui, vous devriez essayer de mettre en œuvre votre propre système, car cela vous apprendra beaucoup. Mais ne l'utilisez pas dans un "vrai" projet.

3voto

Cratylus Points 21838

il est recommandé de créer votre propre classe String

Je crois que l'auteur suggère de créer votre propre String comme un bon exercice de programmation pour développer vos compétences.

Il serait absurde (c'est le moins que l'on puisse dire) d'impliquer de créer votre propre String classe pour le code de production réel ou le code non académique

3voto

Luchian Grigore Points 136646

Le C++ n'a pas de String classe. Mais il y a un std::string qui couvre la fonctionnalité de base des chaînes de caractères et dont l'existence est garantie par la norme. Pour l'utiliser, vous devez #include <string> .

Si vous avez besoin de plus de fonctionnalités que celles fournies par l'application std::string vous pouvez toujours ajouter des fonctions libres qui opèrent sur la chaîne de caractères. Il existe également des implémentations de chaînes de caractères tierces (l'implémentation de la chaîne de caractères de MS). CString de RogueWave RWCstring ), mais je ne les trouve personnellement pas très utiles si vous ne faites que des choses basiques.

1voto

Neal P Points 335

La bibliothèque standard std::string ne dispose pas de nombreuses fonctionnalités communes aux classes de chaînes de caractères, notamment la division des chaînes, la correspondance avec les regex, la conversion en entier, etc. Je ne pense pas que ce soit une bonne idée de réécrire complètement la classe std::string (sauf si elle est fondamentalement incompatible avec vos besoins), mais la sous-classification de la classe std::string pour fournir certaines de ces fonctionnalités serait bien.

0voto

jcoder Points 14982

Il y a certaines raisons pour lesquelles vous pourriez vouloir créer votre propre classe de chaîne de caractères, par exemple vous pourriez vouloir créer une classe de chaîne de caractères immuable avec des fonctions optimisées pour créer de nouvelles chaînes dérivées plutôt que de modifier des chaînes existantes parce qu'elles peuvent parfois jouer plus gentiment avec du code fortement multithreadé. Cependant, ce n'est certainement pas quelque chose que vous devez faire si vous lisez un livre pour débutants et vous devriez probablement y réfléchir au moins trois fois de toute façon.

Comme on l'a dit, std::string est la chose à utiliser pour 99,9% des choses.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X