String类的隐式构造函数

时间:2014-02-03 06:14:26

标签: c++ class-constructors

String s2(“hi”);

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

String :: String(const char * str);

这个构造函数会处理它:

String :: String(const String& str);

2 个答案:

答案 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”)可以正常工作。