0

文字列 s2("こんにちは");

暗黙的な文字列コンストラクターを作成する必要がありますか?

String::String(const char* str);

また

このコンストラクターはそれを処理しますか:

String::String(const String &str);

4

2 に答える 2

1

この文字列オブジェクトを作成すると、文字列 (const char* s) コンストラクターが呼び出されるため、コンストラクターを記述する必要はありません。

std::string クラス内で定義されているコンストラクターは次のとおりです。

string();   
string (const string& str); 
string (const string& str, size_t pos, size_t len = npos);  
string (const char* s); 
string (const char* s, size_t n);   
string (size_t n, char c);  
template <class InputIterator>
  string  (InputIterator first, InputIterator last);

さらに、一部の標準ライブラリを編集しようとしないでください。不要な問題が発生する可能性があります。カスタマイズした関数が必要な場合は、独自のラッパーを作成してください。

于 2014-02-03T06:27:50.917 に答える
0

std::string には、これを処理するためのコンストラクターが既にあります。std::string s2("hill") は問題なく動作します。

于 2014-02-03T06:17:13.733 に答える