如何更改对象的 cout 字符串
How to change cout string for object
这是我的代码
class MyObj {
};
int main(int argc, char **argv) {
std::cout << new MyObj();
};
输出是0x613c40
,有没有办法0x613c40
更改为"我的对象描述",我知道Java有toString
你可能想要这样的东西:
#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';
};
Use typeid operator.
MyObj obj;
std::cout << "MyObj has type: " << typeid(obj).name() << 'n'
您需要重载"<<"运算符以用于类型为"MyObj"的对象
std::ostream& operator << (std::ostream& output, const MyObj& myObj)
{
return output << "Whatever you want to output";
}
您要输出的任何内容可以是它所包含的公共成员的名称或私有成员,此时由您决定。
相关文章:
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么我的 cout 在输出中没有显示字符串?
- 使用 cout 运算符重载字符串
- C++ - 如何从上到下制作 4x4 矩阵和 cout 列(需要解密字符串)
- C++ 不能在cout中使用向量和字符串文字
- 使用字符串流加速 std::cout 日志记录
- C++ cout 不接受字符串或带 + 的字符串
- cout 切断 for 循环中的字符串开头
- 使用带有 std::cout 的单引号打印字符串实际上打印了数字
- 为什么cout输出内存地址不是字符串?
- 为什么我的 C++ 代码不能显示 cout 字符串
- 在COUT字符串期间,在控制台上闪烁光标
- C++ cout 字符串不起作用.请指教
- cout 字符串和向量在同一行中
- 如何更改对象的 cout 字符串
- 在 std::cout 字符串上崩溃
- cout 字符串和 c_str 在 C++ 中给出不同的值
- 在c++中使用字符串(搜索字符串,分割字符串,cout<<字符串)
- Flex cout字符串崩溃
- 三元运算符中的 Cout 字符串和 int