c++类中的const关键字
类的const成员函数
如果为类成员函数,他表示
(1)不能修改成员变量;
(2)不能调用非const函数;
(3)其他const函数可以调用它;(其他非const函数当然也可以调用它)
(4)可以被const对象(或引用用指针)上调用,比如:const A a; a.f(),也可以被普通对象调用。
const成员函数中的const可以有三个位置:
- const修饰this指针
这种情况是成员函数特有的,如果是普通的函数,则不可以。
格式: return_class function_name(parameter_list) const
作用: 使其函数不能修改数据成员.如果函数中试图修改数据成员.编译器会在编译时发现错误.
class A
{
public:
A myfun() const
{
a++;//error C3490: 由于正在通过常量对象访问“a”,因此无法对其进行修改
}
private:
int a;
};
此处的const是用来修饰this指针的,即const成员函数不可以修改类的成员变量。
- const修饰返回值
格式: const return_class function_name(paramter_list)
作用: 使函数的回返值不被修改.
例如:
A A::operator+(A object) //重载运算符+
A m,n,k
(m+n)=k //这里由于函数没有用const.所以这里m+n产生的临时变量允许修改.
const A A::operator +(A object)
(m+n)=k //编译器提示错误.const函数是不允许修改返回对象的
- 使用const参数
格式 return_class function_name (const class& object )
作用:
1使用const限定符和class& object形式组合作为参数传递给函数是一种良好的习惯.可以提高效率.class& object将用引作为参数时,系统不用再为参数建立临时对象,提高了效率.
2加上限定符const就可以保证用引变量不会被修改.从而实现了值传递,而且还减少了系统开销 。

浙公网安备 33010602011771号