String s2(“hi”);
我是否必须编写隐式字符串构造函数
String :: String(const char * str);
或
这个构造函数会处理它:
String :: String(const String& str);
答案 0 :(得分:1)
当你创建这个字符串对象时,将调用string(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);
进一步不要尝试编辑某些标准库,这会导致不必要的问题。如果你想要任何自定义函数,请编写自己的包装器。
答案 1 :(得分:0)
std :: string已经有一个构造函数来处理这个问题。 std :: string s2(“hill”)可以正常工作。