C++--const成员及const取地址操作符重载

慈云数据 2024-05-30 技术支持 37 0

前言

今天我们来了解一下const成员的基本使用,以及const取地址重载的运用

来开始今天的学习

const成员

1.基本定义,

将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数 隐含的*this指针,表明在该成员函数中不能对类的任何成员进行修改

一般使用如下:

因为this是隐藏的,使用时const放在函数参数括号之后,表示const Date*this 的作用

2,使用场景

此时可以保证*this的成员不被被修改可以用在一些不修改数时的情景,但是如果是一些计算等值会变化得函数,就不能使用它,比如int operator+=(const Date &d)是一个错误用法

3,const的调用权限

现在有几个问题,如果在函数中同时存在const  成员函数,与非const成员函数的话下面情况,会怎麽样

1. const对象可以调用非const成员函数吗?

是不可以的,这里有权限放大的错误,如下cosnt  的对象相当于d2传过出的是const Date*this,

而printf函数是默认的Date*this函数,那么this由原来的只读不写变成了可读可写,权限放大,会出现错误 

const Date d2(2024, 3, 1);
d2.printf();
void printf() //Date类里的函数
{
	cout 
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon