常数据成员和常成员函数

it2022-05-19  72

常数据成员

引言:类存在的目的之一就是为了实现封装性,但是实际上经常使用公有函数接口去修改其数据成员,为了保证类中可以有一些数据成员绝对不会被修改,所以创造了常数据成员

特点: 1.在定义时要在头部加const关键字 2.初始化操作只能在构造函数的初始化列表中进行 3.无论是普通成员函数还是常成员函数都无法修改其值

常成员函数

引言:为了实现这样一种函数:对于其调用的数据成员只能读取,而不能修改。所以创造了常成员函数

特点: 1.在声明和定义时都要在尾部加const关键字 2.其只能读取数据成员,而不能修改

是否可以修改一般成员函数常成员函数一般数据成员是否常数据成员否否

3。常对象只能调用常成员函数

#include<iostream> using namespace std; class Point {int x,y; public: Point(int a,int b):x(a),y(b){} fun(){return x+y} fun()const{return x-y} } void main {const Point p1(1,1); Point p2(1,1); cout<<p1.fun<<endl; cout<<p2.fun<<endl; }

注:上面的例子一方面说明了常对象只能调用常成员函数 另一方面说明了const可以用于区分重载函数

4.常成员函数只能调用常成员函数,防止误改数据成员


最新回复(0)