一、static
1、声明加static,定义可以不加
2、不属于具体的对象,没有this指针
3、某个特定对象调用static函数时,只能访问static成员变量(protected、private都可以)
4、如果同一类型的其他对象对于static方法可见,如当传递了对象的指针/引用作为static函数参数时,那么也可以访问其他对象的private、protected的非static数据成员。(static 函数没有this,但是参数有该入参的this)
5、调用方法同普通函数一致
二、const
1、const说明符是方法原型的一部分,必须放在方法的定义中。—— 声明、定义都要加
double getVal() const;
double getVal() const {
...
}
2、const 函数——将函数内用到的数据成员都标记为const
3、static函数不能为const函数 —— 静态方法没有类的实例,不可能改变内部的值
4、非const对象可以调用:const/非const 函数;const 对象只能调用const 函数
5、析构函数不能为const,const对象也会被销毁
三、mutable数据成员
变量设置为mutable,在const函数中也可以改变其值
本文详细解析了C++中的static关键字、const修饰的函数和mutable数据成员,包括static的作用范围、const函数的使用限制以及mutable如何允许在const函数中修改特定变量。
3996

被折叠的 条评论
为什么被折叠?



