【问题标题】:Member function returning a static variable返回静态变量的成员函数
【发布时间】:2011-11-12 09:39:48
【问题描述】:

返回static成员变量的成员函数也应该是static吗?

例如:

struct T {
   static int i;
   static int getNumber() {
       return i;
   }
};

getNumber 是否应该是static

【问题讨论】:

    标签: c++ methods static


    【解决方案1】:

    通常是的。

    如果变量没有任何实例状态,那么函数在返回之前可以对其执行哪些可能的实例逻辑?

    【讨论】:

    • @Ben,我在发表评论时正在考虑其他事情(即跟踪实例计数的狡猾方式)......无论如何 - 删除了狡猾的评论......跨度>
    • @Nim:我想知道是否有人会提出类似的东西。你不会发疯的。但是您不太可能想在一个简单的 getter 中做到这一点。
    【解决方案2】:

    这不是强制性的。您可以编写一个返回静态变量的成员函数。你不能反过来(写一个返回实例变量的静态函数)。

    作为您可能希望返回静态成员的示例,想象一个类包含状态变量并根据状态返回其中一个静态值的情况。不是说这是好的设计,但也不是完全不可思议

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-07
      • 2015-08-17
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 2013-02-08
      相关资源
      最近更新 更多