class MyInteger
{
MyInteger() : m_val(0) { }
MyInteger()( int _val ) : m_val( _val ) {}
~MyInteger() {}
};
MyInteger myInteger(10);
std::string s = (std::string)myInteger
如何编写C ++函数以获得“10”? 我是C ++的新手。
非常感谢你。
答案 0 :(得分:3)
你可以有一个方法
#include <sstream>
#include <string>
//...
std::string MyInteger::toString()
{
std::stringstream stream;
stream << m_val;
return stream.str();
}
或适合你的风格:
class MyInteger
{
public:
MyInteger() : m_val(0) { }
MyInteger()( int _val ) : m_val( _val ) {}
~MyInteger() {}
std::string toString()
{
std::stringstream stream;
stream << m_val;
return stream.str();
}
private:
int m_val;
};
答案 1 :(得分:1)
除了上述方法,您还可以像这样重载强制转换运算符:
class MyInteger
{
...
operator std::string() { /* string conversion method here */ }
};
如以下链接所述 Overload typecasts