静态类成员变量和静态变量的主要区别是什么?静态类成员和静态变量都可以从任何类的成员函数中访问。静态类成员和静态变量的具体用途是什么?
唯一的原因是代码整洁。您不能限制对全局静态变量的访问,例如
static int globalValue=5;
Run Code Online (Sandbox Code Playgroud)
它(至少)在您定义它的源文件中可见。使用静态类,您可以向用户提供类提示,以及您希望如何访问它或被访问的方式。它仅在类范围内可见:
class myGlobalContainer
{
public:
static int myInt;
protected:
static float myFloat;
private:
static bool myBool;
};
Run Code Online (Sandbox Code Playgroud)
myInt 的访问是通过以下方式完成的:
int x=myGlobalContainer::myInt;
Run Code Online (Sandbox Code Playgroud)
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;
};
Run Code Online (Sandbox Code Playgroud)
public static属性经常与const. 它们主要为用户提供快捷方式。例如:
COLOR white=COLOR::WHITE;
Run Code Online (Sandbox Code Playgroud)
代替:
COLOR white=COLOR::FromAGBR(255,255,255,255);
Run Code Online (Sandbox Code Playgroud)
最少添加:是否应该使用静态是一个完整的其他讨论。
| 归档时间: |
|
| 查看次数: |
4988 次 |
| 最近记录: |