我想将自定义类转换为在 VS2005 中编译得很好的字符串。但是在 VS2012 中我得到了编译器错误error C2440: 'type cast' : cannot convert from 'A' to 'std::string'
。我必须改变什么?这是我的例子:
#include <string>
using namespace std;
class A
{
public:
A& operator=(const char* c);
operator string ();
operator const char* ();
private:
string value;
};
A::operator string () { return string((const char*)(*this)); }
A& A::operator = (const char* aValue) { value = aValue; return *this; }
A::operator const char *() { const char* wort = "Hello"; return wort; }
int main()
{
A a;
string s = (string)a; // C2440
}