1
我打破了一个问题,我已经尝试过在下面的问题来解释here:错误与转换运算符和的std :: string类中的
#include <iostream>
#include <string>
class atest
{
public:
operator std::string()
{
return std::string("Huhuhu");
}
operator int()
{
return 42;
}
};
int main(int argc, char* argv[])
{
atest tst;
std::string astr;
astr=tst;
int i=0;
i=tst;
return 0;
}
的std :: string好像有几个构造函数甚至覆盖INT 。我有一个需要被转换成std :: string的类,但也是一个整型。由于assign(=)操作符在类定义之外不能被覆盖,所以我不知道如何让上述程序运行。 这是不好的设计,但值得注意的是VS2013与上面的代码没有问题。