1.常成员函数
(定义来自 @阳光璀璨 的专栏)
成员函数有两类,修改对象状态的成员函数,获取对象状态的成员函数。
常成员函数就是一种获取成员状态的函数,并且不能改变对象状态(好智能的感觉)
比如
class temp
{
public:
void setvalue(int a)const;
int b;
};
void temp::setvalue(int a)const
{
b=a;
}
编译器会报错
![8b51e95bdd3146d2e25c0dcef8d8e1fe.png](https://i-blog.csdnimg.cn/blog_migrate/85aee4ff9993ab30120f57d2a3109bf2.png)
同时需要注意到形式
const int setvalue();
int setvalue() const;
前者相当于返回值是const int 类型,仅对返回值做出限制
后者对函数做出了限制,函数为常成员函数
常成员函数只能读取数据成员,而不能修改,同时
1.常对象只能调用常成员函数
2.常成员函数只能调用常成员函数(避免暗中修改数据成员)
3.常成员函数可以成为其它函数的重载
常成员函数不能用于初始化对象,因为这时只能叫赋值
2.常数据成员
常数据成员只能被初始化,不能被赋值,因此要用初始化列表,或者定义时初始化。