const用处
常数据成员
const修饰类的成员变量,表示成员常量,不能被修改,同时它只能在初始化列表中赋值(c11中支持类中实始化)。可被const 和非const 成员函数调用,而不可以修改。
{
public:
A():iValue(199){}
private:
const int iValue; }
常成员函数
const 修饰函数的意义
承诺在本函数内部不会修改类内的数据成员,不会调用其它非const成员函数
const 修饰函数位置
const 修饰函数放在,声明这后,实现体之前,大概也没有别的地方可以放了。
1,如果const 构成函数重载,const 对象只能调用const函数,非const对象优先调
用非const函数。
2,const 函数只能调用const函数。非const 函数可以调用const 函数。
3,类体外定义的const成员函数,在定义和声明处都需要const修饰符
常对象
const A a;
a.dis();
小结:
1,const对象,只能调用const成员函数。
2,可访问const 或非const 数据成员,不能修改。 static用处 在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏(相比全局变量的优点)的原则,保证了安全性还可以节省内存。类的静态成员,属于类,也属于对象,但终归属于类。
声明:
static 数据类型 成员变量; //在类的内部
初始化
数据类型 类名::静态数据成员 = 初值; //在类的外部
调用
类名::静态数据成员
类对象.静态数据成员 1,static 成员变量实现了同簇类对象间信息共享。
2,static成员类外存储,求类大小,并不包含在内。
3,static 成员是命名空间属于类的全局变量,存储在data区rw段。
4,static 成员使用时必须初始化,且只能类外初始化,可以在函数中再次赋值。
5,可以通过类名访问(无对象生成时亦可),也可以通过对象访问。 类静态成员函数的定义
为了管理静态成员,c++提供了静态函数,以对外提供接口。并静态函数只能访问静态成员。
声明
static 函数声明
调用
类名::函数调用
类对象.函数调用 静态成员函数的意义,不在于信息共享,数据沟通,而在于管理静态数据成员,完成对静态数据成员的封装。
静态成员函数只能访问静态数据成员。原因:非静态成员函数,在调用时this指针时被当作参数传进。而静态成员函数属于类,而不属于对象,没有this指针
static const 成员
如果一个类的成员,既要实现共享,又要实现不可改变,那就用static const修饰。
修饰成员函数,格式并无二异,修饰数据成员。必须要类内部实始化 class A
{
public:
static const void dis()
{
cout<<i<<endl;
}
private:
const static int i = 100;
}; 标签:const,函数,静态,成员,修饰符,对象,static From: https://www.cnblogs.com/uestc-du/p/17063860.html