私が出会ういくつかのクラスには、二重の文字列コンストラクターがあります。
construct( const std::string& s );
construct( const char* s );
コンストラクターを持つことには、なしstd::string
で a を渡すことができるという明らかな利点があります。ただし、とにかく引数が std::string に格納されている場合、コンストラクターを持つ利点はありますか?std::string
c_str()
const char*
特に:
construct( const std::string& s ) : m_string( s ) {}
construct( const char* s ) : m_string( s ) {}
std::string m_string;
2 番目のコンストラクターは、文字列リテラルとchar*
変数に対して高速になりますか、それとも最適化されますか?
追加の質問 - C++11 は構造を変更しますか?