【发布时间】:2008-11-11 18:39:28
【问题描述】:
将对象的公共内容输出到人类可读文件的最佳方式是什么?我正在寻找一种方法来做到这一点,它不需要我知道类的所有成员,而是使用编译器告诉我存在哪些成员,以及他们的名字是什么。必须有宏或类似的东西,对吧?
人为的例子:
class Container
{
public:
Container::Container() {/*initialize members*/};
int stuff;
int otherStuff;
};
Container myCollection;
我希望能够按照“myCollection: stuff = value, otherStuff = value”的方式查看输出。 但是如果另一个成员被添加到容器中,
class Container
{
public:
Container::Container() {/*initialize members*/};
int stuff;
string evenMoreStuff;
int otherStuff;
};
Container myCollection;
这一次,此快照的输出将是“myCollection: stuff = value, evenMoreStuff=value, otherStuff = value”
是否有宏可以帮助我完成此任务?这甚至可能吗? (另外,我不能修改 Container 类。) 另一个注意事项:我对 VS 中的潜在宏最感兴趣,但也欢迎其他解决方案。
【问题讨论】:
-
我很高兴能发布关于 C# 序列化的帖子,然后我看到了 C++ 代码 =)
标签: c++ visual-studio-2005 file-io