常数据成员、常成员函数

定义常数据成员:
类型 const 对象名;或者 const 类型 对象名;
例如:const clock c1(9,9,9)或者:
clock const c2(10,10,10);

常对象的几条特殊规则:
1、常对象,不能被赋值。
2、常对象,不能访问非常成员函数。
3、常对象,不能被更新。
4、常数据成员,只能通过初始化列表来获得初值。

什么时候用常对象?
1、函数返回值,2、函数形参(常引用)

常成员函数
1、常成员函数,不能修改(更新)对象数据成员的值。
2、常成员函数,不能调用该类中没有用const修饰的成员函数。
3、常对象,只能调用它的常成员函数,而不能调用其他成员函数。
3、const关键字可以用于参与重载函数的区分。

如何定义常成员函数?
返回类型 成员函数名(参数表) const;

综合例题:

class date{
   privateint y,m,d;
   public:
       int year() const;
       int day() const;{return d;}
       int  month() const;
       int day(){return d++;}
       int addyear(int i)
       {return y+i;}
       };

int date::month(){return m;}
//错误,常成员函数实现不能缺少const
int date::year()const{return y++}
//错误:常成员函数不能更新类的数据成员
date const d1;
int j=d1.year;
//正确,常对象可以调用常成员函数
int j=d1.addyear(10);
//错误,常对象不能调用非常成员函数
date d2;
int i=d2.year();
//正确,非常对象可以调用常成员函数。
d2.year()
//正确,非常对象可以调用非常成员函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值