这是我的代码
class MyObj {
};
int main(int argc, char **argv) {
std::cout << new MyObj();
};
输出为0x613c40
,是否可以将0x613c40
更改为“我的对象描述”,我知道java有toString
答案 0 :(得分:1)
你可能想要这样的东西:
#include <iostream>
class MyObj {
public:
int member_;
};
std::ostream& operator<<(std::ostream& os, const MyObj& myObj)
{
return os << "MyObj{ member_ " << myObj.member_ << " }";
}
int main(int argc, char **argv) {
MyObj myObj { 42 };
std::cout << myObj << '\n';
};
答案 1 :(得分:0)
Use typeid operator.
MyObj obj;
std::cout << "MyObj has type: " << typeid(obj).name() << '\n'
答案 2 :(得分:0)
你需要重载“&lt;&lt;”运算符与“MyObj”类型的对象一起使用
std::ostream& operator << (std::ostream& output, const MyObj& myObj)
{
return output << "Whatever you want to output";
}
您要输出的内容可以是公共成员所拥有的名称,也可以是其包含的私人名称,此时由您决定。