【发布时间】:2011-10-01 03:58:34
【问题描述】:
给定一个班级
struct {
int a1;
bool a2;
...
char* a500;
...
char a10000;
}
我想打印或流出
"a1 value is SOME_VALUE"
"a2 value is SOME_VALUE"
"a500 value is SOME_VALUE"
...
"a10000 value is SOME_VALUE"
成员变量的类型不一样(主要是int、bool、char*等,即不需要重载
感谢任何cmets!
【问题讨论】:
-
一些框架 add reflection 但这不是原生语言功能
-
在 C++ 中没有通用的方法来做你想做的事。您应该问自己是否使用了正确的工具来完成这项工作。考虑另一种语言,或 C++ 中的不同数据结构,可能是向量或列表。
-
此外,你真的不能正确地做到这一点。以
struct { std::string a; }为例——你真的希望它打印出a._BUF[0] = 'H' a._BUF[1] = 'e' a._BUF[2] = 'l' , a._BUF[0] = 'l'等等吗?还是您更愿意a = "Hello, world\n"? C++ 对如何打印struct Foo有一个清晰的概念,那就是operator<<(std::ostream&, Foo);
标签: c++ variables printf iostream