4

C++ のチュートリアル本を読んでいるのですが、著者によると、ほとんどの C++ コンパイラには String クラス ライブラリが含まれていますが、含まれている場合でも、独自の String クラスを作成することをお勧めします。残念ながら、著者はその理由を述べていません。同意しない/同意する人はいますか?その理由は?

私は Xcode を使用しており、提供されている String クラスは問題ないように思えますが、それでも数時間しか使用していないため、制限はわかりません。

前もって感謝します。

4

5 に答える 5

6

古い本を持っているように聞こえます。

C++ 標準ライブラリにはstd::stringクラスが含まれており、独自に発明して、広く使用されているライブラリで既に発生して修正されているバグを修正する代わりに、それを使用する必要があります。

あなたは初心者なので、はい、かなりのことを教えてくれるので、独自の実装に挑戦する必要があります。「実際の」プロジェクトでは使用しないでください。

于 2012-05-23T20:19:26.817 に答える
3

独自の String クラスを作成することをお勧めします

著者はString、スキルを伸ばすための優れたプログラミング演習として、独自のクラスを作成することを提案していると思います。

String実際の製品コードまたは非学術コード用に独自のクラスを作成することを意味するのは (控えめに言っても) ばかげています。

于 2012-05-23T20:19:35.087 に答える
3

StringC++ にはクラスがありません。ただし、std::string基本的な文字列機能をカバーし、標準によって存在が保​​証されているクラスがあります。それを使用するには、する必要があります#include <string>

で提供されている以上の機能が必要な場合はstd::string、文字列を操作する無料の関数をいつでも追加できます。サードパーティ製の文字列の実装 (MSCStringや RogueWaveなどRWCstring) もありますが、個人的には、基本的なことだけを行う場合にはあまり役に立ちません。

于 2012-05-23T20:19:58.727 に答える
1

標準ライブラリのstd::stringクラスには、文字列の分割、正規表現との照合、整数への変換など、文字列クラスで一般的な多くの機能が欠けています。クラスを完全に書き直すのは良い考えではないと思いますstd::string(基本的に互換性がない場合を除きます)。必要)、std::stringこれらの機能の一部を提供するためにクラスをサブクラス化すると便利です。

于 2012-05-23T20:20:02.590 に答える
0

独自の文字列クラスを作成する理由はいくつかあります。たとえば、既存の文字列を変更するのではなく、新しい派生文字列を作成するために最適化された関数を使用して不変の文字列クラスを作成する場合があります。ただし、これは、初心者向けの本を読んでいる場合は確かに行う必要のあることではなく、とにかく少なくとも3回は再考する必要があります。

人々が言っ​​ているように、std :: stringは99.9%のものに使用するものです。

于 2012-05-23T21:31:04.460 に答える