我有一些函数是效用函数,它们作为函数放在命名空间内。
在C#方面有一些经验,我知道创建这样的函数是不可能的,你需要在类中收集它们并将它们定义为静态。
在这里做同样的事情是个好主意吗?创建一个类并将所有相关函数放在这类的静态方法中?有速度差异吗?
看到那个帖子,但是这个答案有一个很大的错误:我使用的是具有静态方法的类,没有其他类型的方法或状态。因此,静态方法不可能使用类的内部数据。
所有现代的OO语言(如C#和java)都不允许您自己在命名空间上放置方法,因此应该有充分的理由。我认为原因很清楚:在OO系统中,我们有类,没有功能。
C ++诞生于C,因此我们可以在命名空间内创建函数,但我们不应该这样做!
答案 0 :(得分:1)
根本没有速度差异。通常,在C ++中,您当前的解决方案被认为是更好的编码实践。有关详细信息,请参阅此主题:Namespace + functions versus static methods on a class