c++ - 如何写一个指向 std::cerr 的指针?

标签 c++ pointers iostream stderr

给定:

MY_CLASS* ptr = MY_CLASS::GetSomeInstance();

ptr 输出到 std::cerr 的正确方法是什么,以便我可以记录它的值?注意我不想写类,只写地址。

最佳答案

operator<<重载采取 const void* , 所以你可以简单地将指针插入到流中:

std::cerr << ptr;

异常(exception)情况是,如果指针是 const char* ,它将被解释为指向 C 字符串的指针。要打印指针,您需要将其显式转换为 const void* :

std::cerr << static_cast<const void*>(ptr); 

关于c++ - 如何写一个指向 std::cerr 的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3251167/

相关文章:

c++ - Linux 将连续输出作为命令行参数传递

c++ - C++ 中的 'operator auto' 是什么?

c - 访问结构指针的成员时取消引用指向不完整类型的指针

c - 如何知道字符串指针在重新分配后是否真的变小了?

c++ - 别名到数组

c++ - C++ 中指针更改导致内存泄漏?

c - 将c中的指针存储在特定寄存器中

c++ - 重置 ostream,C++

Java:从字节到字符的转换以及如何使用dataOutputStream

c++ - 如何清除 C++ 中 iostream 对象中的状态位?