静态类成员变量和静态变量之间的主要区别是什么?静态类成员和静态变量都可以从任何类的成员函数访问。静态类成员和静态变量的具体用途是什么?
唯一的原因是代码的清洁度。您不能限制对全局静态变量的访问,例如
static int globalValue=5;
它(至少)在您定义它的源文件中可见。使用静态类,您可以为类的用户提供有关如何访问它或如何访问它的提示。它仅在类范围内可见:
class myGlobalContainer
{
public:
static int myInt;
protected:
static float myFloat;
private:
static bool myBool;
};
myInt的访问通过以下方式完成:
int x=myGlobalContainer::myInt;
public修饰符向用户提示您将该值视为myGlobalContainer的一部分,并希望他使用它。您不会像使用那样污染全局名称空间globalValue
。
修饰符protected
,private
表明您不希望“局外人”访问这些值。
protected
和private
static
属性通常用于在类的实例之间共享信息,例如,实例计数器:
class myGlobalContainer
{
public:
myGlobalContainer()
{
if(counter==0)
DoSomeSpecialGlobalInit();
counter++;
}
~myGlobalContainer()
{
counter--;
if(counter==0)
DoSomeSpecialGlobalUnInit();
}
private:
static int counter=0;
};
public
static
属性通常与一起使用const
。它们主要是为用户提供快捷方式。例如:
COLOR white=COLOR::WHITE;
代替:
COLOR white=COLOR::FromAGBR(255,255,255,255);
至少要补充一点:如果您不应该使用静态变量,则是一个完整的其他讨论。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句