-2

私はいつも疑問に思っていましたが、なぜそうするのかについて満足のいく説明を見つけることができませんでした

std::string str = 50;
cout << str

ガベージを与えるか、コンパイルしません

std::ostringstream str << 50;
cout << str // or str.str()

動作します。

std::string が整数や整数のような型から変換演算子を実装するのを妨げる継承の制限は何ですか?

4

3 に答える 3

0
std::string str = 50;

これはコンパイルされません。basic_string単一の からのコンストラクターはありませんint。あなたの実装には欠陥があります。basic_string他の型から文字列への変換は実行しません。文字列のみを処理します。

std::ostringstream str << 50;

これは、50 から "50" への変換を実行し、それを出力します。stringstream 、他のタイプからテキストに変換するためのものです。

于 2013-07-12T20:23:45.203 に答える
-1

整数を文字列に変換する方法はいくつかありますが、あなたが言及した方法は間違っています。

次の C++/STL を見てください。

ostringstream
to_string

子:

sprintf
于 2013-07-12T20:20:44.233 に答える