2011-09-07 27 views
5

返回static成员变量的成员函数是否也应该是static返回静态变量的成员函数

例如:

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

应该getNumberstatic与否?

回答

7

通常,是的。

如果该变量没有任何每个实例的状态,那么函数在返回之前可能执行的每个实例的逻辑是什么?

+0

@Ben,当我发表评论的时候,我正在考虑其他的东西(例如,记录实例计数的hokey方式)......反正 - 删除了狡猾的评论... – Nim

+0

@Nim:我想知道是否有人可能会提出这样的事情。你不会生气的。但是,你很可能不想在一个简单的吸气器中做到这一点。 –

1

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

作为一个例子,你可能想要返回一个静态成员,想象一下这个类持有一个状态变量的情况,并且基于你将返回一个静态值的状态。不是说这是好的设计,但它不是完全不可思议的