【发布时间】:2014-09-08 17:27:46
【问题描述】:
由于 C++ 不像 Java 那样具有反射功能,因此我构建了一组通用数据容器,可用于将数据格式化为各种格式(JSON、XML、CSV 等)。我的问题是这样的:
让类名通用并使用命名空间是更好的做法,还是在没有命名空间的情况下创建唯一的类名?另外,这是解决这个反射问题的最佳方法吗?
例如:
namespace FormatContainers
{
class Object {...};
class Array {...};
class Value {...};
}
对
class FCObject {...};
class FCArray {...};
class FCValue {...};
这些类的示例用法:
FCObject o;
o.addNVP("Name1","Value1");
o.addNVP("Name2",5);
cout << o.toString("JSON");
产量:
{"Name1":"Value1","Name2":5}
【问题讨论】:
-
来自“Python 之禅”:“命名空间是一个非常棒的想法——让我们做更多这样的事情!”。也应该有一个“C ++禅”:)
标签: c++ json class reflection namespaces