2011-12-13 28 views
1

我目前正在实施一些实用功能来实现我正在处理的一些库。我不得不选择将函数作为静态成员分段,作为更一般的命名空间中的类定义的一部分,或者输入更具体的命名空间,然后定义函数。我选择前者的感觉,因为它在这些实用工具类可被吸入范围的方式更为灵活(使用或继承)虽然我不确定是否有这样的设计选择或不相关的任何开销:引用静态函数作为类定义的一部分是否有任何开销?

namespace Utilities { 
    struct CharUtil { 
    static void foo(); 
    } 
} 
Utilities::CharUtil::foo(); 

namespace Utilities { 
    namespace CharUtil { 
    void foo(); 
    } 
} 
Utilities::CharUtil::foo(); 

前者使用继承更快吗?

+0

只有一种方法可以知道它是否更快:通过测量它。即使如此,*更快*并不相关。只有*足够快*很重要。 – 2011-12-13 17:41:33

回答

2

这两种情况之间完全没有区别,除了函数的错位名称。静态函数没有this指针作为隐藏参数。编译器为这两个函数生成的代码将是相同的。

相关问题