我班上有一个static const std::vector<SomeType>
字段。我有两个使用此字段的private
方法(搜索方法)。
他们不使用我班上的其他成员。它们应该定义为static
还是常规方法?
我更喜欢什么?有什么优点/缺点?
答案 0 :(得分:3)
通常只应将静态成员引用的方法定义为静态。这使您可以在不创建类实例的情况下访问这些方法,也可以从静态上下文(例如,从非成员函数)访问它们。
此规则的唯一例外是当您需要从定义为virtual的成员函数进行此访问时。在这种情况下,您无法选择使您的函数成为静态函数,因为静态函数不能覆盖虚函数。