首页 > 代码库 > 局部静态变量

局部静态变量

 1 #pragma region 成员函数的局部静态变量应用 2 class CTestA 3 { 4 public: 5     CTestA(); 6     void ReturnCurrentTime(float currentFrame, float nextFrame); 7 }; 8  9 CTestA::CTestA(){}10 11 void CTestA::ReturnCurrentTime(float currentFrame, float nextFrame)12 {13     static float _currentFrame   = currentFrame;   //静态局部变量,任何对象调用这个方法时都是这个值14     static float _nextFrame      = nextFrame;      //静态局部变量,任何对象调用这个方法时都是这个值15     cout<<"_currentFrame="<<_currentFrame<<" _nextFrame="<<_nextFrame<<endl;16     _nextFrame=2000;                               //修改静态变量的值,任何对象调用这个方法时都是这个值17 }18 19 void test107()20 {21     CTestA a1;22     CTestA a2;23     float i=100.0f;24     float j=200.0f;25     a1.ReturnCurrentTime(i,j);                    //第一次初始化,输出是100,20026     i      =1.0f;27     j      =2.0f;28     a2.ReturnCurrentTime(i,j);                    //第二次初始化输出的是100,2000,而非1和2,可见外部变量只能初始化一次局部静态变量29 }30 #pragma endregion

局部静态变量的应用,不明白时百思不得其解,明白后就豁然开朗,场景代码太多,这里仅仅直接抽象出部分代码来.

 

局部静态变量