Строка s2("привет");
Должен ли я писать неявный строковый конструктор
String::String(const char* str);
or
будет ли этот конструктор обрабатывать это:
String::String(const String &str);
Строка s2("привет");
Должен ли я писать неявный строковый конструктор
String::String(const char* str);
or
будет ли этот конструктор обрабатывать это:
String::String(const String &str);
Когда вы создаете этот строковый объект, будет вызываться конструктор строки (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);
В дальнейшем не пытайтесь редактировать некоторые стандартные библиотеки, это приведет к нежелательным проблемам. если вам нужны какие-либо настраиваемые функции, напишите собственную оболочку.
std::string уже имеет конструктор для обработки этого. std::string s2("горка") будет работать без проблем.