之前纠结enum class,其中一个问题就是,要输出type的名字,方便调试。
今天尝试了一下输出重载,没想到竟然可以。
测试如下,
#include <iostream> using namespace std; enum class Type { TEXT, _EOF }; ostream& operator << (ostream& out,Type tp) { switch(tp) { case Type::TEXT: out << " TEXT ";break; case Type::_EOF: out << " _EOF ";break; default:; } return out; } int main() { Type A = Type::TEXT; Type B = Type::_EOF; cout << A << B << endl; return 0; }
还是Python的__name__好用啊。
本文介绍如何在C++中为枚举类Type实现输出重载,以便在调试时能够直观地显示枚举类型的名称,如TEXT和_EOF。通过重载<<运算符并使用switch-case结构,实现了枚举值到字符串的转换。
3824

被折叠的 条评论
为什么被折叠?



