const/static 成员函数

本文详细介绍了C++中const成员函数与static成员函数的特点及限制条件,包括const成员函数不能修改成员变量(mutable除外),const成员函数的this指针特性,以及static成员函数的特性与限制。

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

大部分来自从stack overflow上搜集的内容,外加C++ primer的一些内容

1.const成员函数:

const成员函数中不能对成员变量进行改变,但是被mutable修饰的成员变量除外(mutable只能修饰非static数据成员)。而且注意哦,const只是对其所属类的成员变量起作用,函数里还是可以修改其形参的!const类型对象只能调用类的const成员函数而不能调用非const类型的。

2.static成员函数

static成员函数除了不能是const的之外,也不能是virtual的。

3.和this指针的关系

this VS const function

在普通非成员函数里的this指针,其自身的值不能修改,但是可以修改成员变量的值,而在const function里的this pointer,就化身为const A * const的。

this VS static function

static成员函数里没有this指针!

4.const和static的关系

static成员函数不能是const的,因为static成员函数不属于任何对象的组成部分,而将函数声明为const的,就代表不会修改其所属对象,所以有冲突。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值