首页 > 代码库 > const ,static,online
const ,static,online
const:
1 定义变量 ,如下写法都可以:
TYPE const ValueName = value;
const TYPE ValueName = value;
2 当作为全局变量并且在他文件也想使用时:(默认const具有局部性)
1.CPP :extern const TYPE ValueName = value;定义
2.CPP: extern const TYPE ValueName; 外部声明
上面两个const 和TYPE可以颠倒。
3 指针使用const
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。
4 函数参数中返回值中用const
5 类与const:
class A
{
…
const int nValue; //成员常量不能被修改
…
A(int x): nValue(x) { } ; //只能在初始化列表中赋值
void function()const; //常成员函数, 它不改变对象的成员变量.
//也不能调用类中任何非const成员函数。
}
1)修饰成员变量:表示成员常量,不能被修改,同时它只能在初始化列表中赋值。
2)const成员函数不被允许修改它所在对象的任何一个数据成员,函数中可以使用非const成员变量,但不能修改。 不能调用类中任何非const成员函数。(因为任何非const成员函数会有修改成员变量的企图。)const成员函数声明和定义const都不能少
3)const类对象、指针、引用:只能调用类的const成员函数,可以使用成员变量,但不能改变值。因此,const修饰成员函数的最重要作用就是限制对于const对象的使用。
class A{ public: const int nValue; //成员常量不能被修改 int m_a; A(int x,int a): nValue(x) { m_a=a;} ; //只能在初始化列表中赋值 void func()const; //常成员函数, 它不改变对象的成员变量. //也不能调用类中任何非const成员函数。 }; void A::func() const{ cout<<m_a<<endl; cout<<nValue<<endl;}int main(){ const A aa(1,2); cout<<aa.m_a<<endl; aa.func(); return 0;}
static: