1. 【简言】
static 及const在c/c++中是非常重要的两个关键字,在函数及参数中都有广泛的使用。
2. 【代码举例】
ps:请直接看代码是1 、2、3、4的说明即可。
#include <iostream>
using namespace std;
class tTest;
int main()
{
tTest A;
A.tabc();
system("pause");
return 0;
}
class tTest
{
public:
tTest()
{
b = 1000;
}
void tabc()
{
cout <<"in class iT= "<< iTerVal << endl;
//b = 10; //1)如果这里不//掉,main中的cout会显示10,如果这里不定义则显示tTest::b =100的值
cout <<"in class b= "<< b << endl;
}
private:
static const int iTerVal = 100;//2)如果不初始化也是可以的,但是一使用就报错,故使用static const是必须要初始化
static int b;//3)在类外定义(注意不是初始化,初始化中定义的一个子集,定义即分分配内存,但不一定赋初值),
};
int tTest::b = 100;//int tTest::b; //4)即必须要定义,定义则可以赋值(前一个)可能不赋值(后一个)
ps:此例子中,最优先显示的是"b = 10;", 然后是构造函数中“b =1000;"它可以覆盖类外的赋值,最后是类外的tTest::b =100;
3. 【小结】
1. 在类中static 修改的变量一定要在类外定义,不能在类内初始化;
2. static const 修改的变量,必须在类内初始化。