неявные конструкторы для класса String

Строка s2 («привет»);

Должен ли я написать неявный строковый конструктор

String :: String (const char * str);

или же

этот конструктор справится с этим:

String :: String (const String &ул);

0

Решение

Когда вы создаете этот строковый объект, будет вызван конструктор 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

Другие решения

У std :: string уже есть конструктор для обработки этого. std :: string s2 («hill») будет работать без проблем.

0