静态方法或使用静态字段的非静态方法

时间:2016-11-05 22:12:20

标签: c++ c++11

我班上有一个static const std::vector<SomeType>字段。我有两个使用此字段的private方法(搜索方法)。 他们不使用我班上的其他成员。它们应该定义为static还是常规方法?

我更喜欢什么?有什么优点/缺点?

1 个答案:

答案 0 :(得分:3)

通常只应将静态成员引用的方法定义为静态。这使您可以在不创建类实例的情况下访问这些方法,也可以从静态上下文(例如,从非成员函数)访问它们。

此规则的唯一例外是当您需要从定义为virtual的成员函数进行此访问时。在这种情况下,您无法选择使您的函数成为静态函数,因为静态函数不能覆盖虚函数。