9
我想使用转换运算符类来字符串和char *,这使尝试创建字符串时出现模糊的调用错误。 假设我有以下类:C++运算符字符串和char *导致模棱两可的错误
class A
{
public:
A(){};
operator const char*() const { return "a" };
operator const string() const { return "b" };
}
和以下主要项目:
int main()
{
A a;
string b = string(a);
return 0;
}
这便会导致不明确调用错误的basic_string(A &) 也试过如下:
class A
{
public:
A(){};
operator const char*() const { return "a" };
explicit operator const string() const { return "b" };
}
int main()
{
A a;
string b = static_cast<string>(a);
return 0;
}
这造成相同的错误。我需要在我的代码中同时拥有两个运营商,我如何 进行此项工作?
注意:在使用字符串B = A的作品,但我需要的字符串()格式的工作藏汉
注2:不使用显式keywork使得运营商=暧昧
@Sergey我不能在那里发现一个局部变量? –
[相关](https://stackoverflow.com/questions/3518145/c-overloading-conversion-operator-for-custom-type-to-stdstring)。 –
@πάνταῥεῖ嗯,是的,它应该被编译到数据段。 – Sergey