Конструктор, который ищет компилятор:
testClass(const char* s) : str(s)
{
std::cout << "custom constructor 3 called" << std::endl;
}
Я думаю, что ваш код дает сбой, потому что для этого потребуются два неявных преобразования: присваивание и от const char*
до const std::string&
.
Кроме того, вы должны использовать const std::string&
вместо.
testClass(const std::string &s) : str(s)
{
std::cout<<"custom constructor 2 called"<<std::endl;
}
Потому что в testClass t4 = "string";
вы даете const char*
.