2017-12-21 40 views
0

こんにちは私はemtpy文字列をC++で初期化する専門的な方法を学びたいと思っています。C++で空の文字列を初期化するプロフェッショナルな方法

私は

std::string a_string; // way_1 

または

std::string a_string = ""; // way_2 

を行うことができますしかし、私はway_1が完全にstdパッケージで定義されたデフォルトの値に応じていると思います。私にとっては、明示的な宣言ではなく、将来std :: stringのコードが変更されると変更する必要があるかもしれません。私にとってway_2は直接ではなく、空の文字列に相当する""を使用しています。私には、ポインタを初期化するためのnullptrのようなビルトインの空の文字列がプロフェッショナルです。

C++プロのプログラマーは、空の文字列をどのように初期化するのでしょうか?

おかげ

+1

空の文字列についてのこの興味深い記事を見てください:https://survex.com/~olly/blog/coding/empty-strings-in-c%2B%2B.html – xander

+1

"標準パッケージ。文字列クラスは、言語標準で定義されている標準ライブラリの一部です。文字列のデフォルト値は、言語標準で定義されています。標準を信頼しない場合は、その言語を使用しないでください。 –

+0

空文字列に明示的なイニシャライザを提供したいのであれば、 '{}': 'std :: string a_string {};'または 'std :: string a_string = {};'または 'auto a_string = std ::文字列{}; ' – Casey

答えて

5

しかし、私はway_1が完全にstdパッケージで定義されたデフォルトの値に応じていると思います。私には明示的な宣言ではなく、将来std::stringのコードが変更された場合は変更する必要があるかもしれません。

これは誤った推論です。 std::stringのデフォルト値はC++標準で定義されており、言語の他の部分と同様に安定しています。それが変化することを心配している場合は、std::stringが完全に消えていること、または""の意味が変わっていること、または空文字列が変化する初期化の意味を気にする必要があります。

「プロフェッショナル」に行く場合は、明示的な形式を使用するプログラマを見た場合、このプログラマがstd::stringのような基本型のデフォルト初期化がわからないのかと疑問に思うでしょう。何がelseこのプログラマーは知りません。

関連する問題