![](/img/trans.png)
[英]C++ Does it make sense to declare a template function with static inline?
[英]Does it make any sense to declare a static variable in a class' function where the object is static
可以说我的班级可以说我有
static classA myObject;
void classA::update(int elapsed)
{
static int sumElapsed = 0;
sumElapsed+= elapsed;
}
看来我的问题有点难以理解。 但是,如果说myObject是classA的单例。 除了可以访问它们的范围之外,classA的本地静态int sumElapsed和私有成员int sumElapsed之间是否有区别。
如果您不希望覆盖sumElapsed,则可以,但是,将sumElapsed作为静态变量封装在classA中似乎更有意义。
实际上,当您在类模板中需要某种静态成员时,首先并没有真正好的选择。 另外,如果成员不是很简单的话,您可能首先想将它们放入函数中,以便对初始化顺序进行某种程度的控制。
通常,请注意,无论您将静态成员放入类还是函数中,它仍然有效地实现了Singleton 反模式 !
当然。 如果sumElapsed
不是静态的,则每次调用该函数时都会被覆盖; 实际上,它不会。 classA::update
本身是静态的事实无关紧要; 只考虑它是否是一个全局函数(例如在C中)。
您应该使用静态类来保存与特定对象无关的方法。 话虽这么说,使用静态类仅包含不能被对象实例化且不应被覆盖的静态成员。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.