0

字符串 s2("hi");

我是否必须编写一个隐式字符串构造函数

String::String(const char* str);

或者

这个构造函数会处理它吗:

String::String(const String &str);

4

2 回答 2

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);

进一步不要尝试编辑一些标准库,这会导致不必要的问题。如果您想要任何自定义功能,请编写自己的包装器。

于 2014-02-03T06:27:50.917 回答
0

std::string 已经有一个构造函数来处理这个。std::string s2("hill") 将毫无问题地工作。

于 2014-02-03T06:17:13.733 回答