【发布时间】:2013-01-30 22:14:59
【问题描述】:
这可能不是 C++ 特有的问题,更多的是与面向对象编程有关。我是新手,我怀疑我的设计。我有一个类 Parser,它基本上实现了许多处理解析表达式、从中缀转换为后缀等的函数。我在主函数中使用这些 Parser 函数。我意识到我不需要这个类的任何数据成员。因此,我真的不需要这个类的对象。因此,我最终使类中的每个函数都是静态的。这个设计有什么奇怪的吗?我应该把它作为一个接口吗?有什么建议吗?
【问题讨论】:
-
一般来说,在 C++ 中,人们会将非成员函数放在命名空间中。不需要一个类来对这样的函数进行分组。
-
如果你只有一个解析器,命名空间就可以了。如果您有 Parser1 和 Parser2 并且希望能够使用其中任何一个,那么这种设计是一种明智的方式。
-
在这种情况下为什么不使用两个不同的命名空间?
-
@user592748 你不能将命名空间作为模板参数传递。
标签: c++ oop class interface static