C++类的常数据成员和常成员函数

本文深入解析C++中常数据成员的定义、初始化与访问规则,以及常成员函数的定义、访问规则与本质。了解如何正确使用const关键字,提高程序的可读性和可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、常数据成员
1、定义
用const修饰的数据成员

const int  hour;//定义const为常数据成员

2、初始化
不能采用在构造函数中对常数据成员进行赋初值的方法,因为常数据成员是不能被赋值的。

构造函数只能用参数初始化列表对常数据成员进行初始化
Time ::Time (int h):hour(h){}//通过参数初始化表对常数据成员进行初始化

3、访问规则

  • 普通成员函数可以引用常数据成员,但是不能修改其值
  • 常成员函数可以引用常数据成员,但是不能修改其值
    二、常成员函数
    1、定义
    常成员函数是指由const修饰符修饰的成员函数
void getTime() const;//在声明和定义常成员函数时都要有const关键字,在调用时不必加

2、访问规则

  • const对象只能调用const成员函数
  • const成员函数可以引用常数据成员和普通数据成员,但是不能修改其值
  • const成员函数只能调用const成员函数,不能调用普通成员函数
  • 普通对象可以调用const成员函数
    3、本质
    常成员函数的const实际上修饰的是this指针使之成为常this指针
void getTime(const Time *const this)

普通成员函数编译完是

void getTime(Time *const this)

4、注意

  • 普通的成员函数和常成员函数互为重载
  • 任何不修改成员数据的函数都应该声明为const函数,这样有助于提高程序的可读性和可靠性
  • const成员函数表示该成员函数只能读类数据成员,而不能修改类成员数据。定义const成员函数时,把const关键字放在函数的参数表和函数体之间。有人可能会问:为什么不将const放在函数声明前呢?因为这样做意味着函数的返回值是常量,意义完全不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值