常数据成员和常成员函数

常数据成员

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

特点:
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.常成员函数只能调用常成员函数,防止误改数据成员

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值