Я определил класс
class Version
{
public:
Version(std::string versionStr)
{
//do something
}
}
Я хочу иметь возможность использовать его следующим образом
void foo(Version v1) {//do somthing};
void main()
{
foo("test");
}
Я хотел бы, чтобы v1 стал объектом, как будто я сделал:
void main()
{
Version v1("test");
foo(v1);
}
это возможно?
В вашем коде слишком много уровней неявного конструирования. "string literal"
имеет тип const char []
а также не std::string
, Только один уровень неявного конструирования происходит автоматически. Попробуйте добавить конструктор, который принимает const char *
вместо:
class Version {
// ...
Version(const char *_vstr) : versionStr(_vstr) {}
// ...
}
Других решений пока нет …