C++ --- C++函数后面加const修饰符
Posted Overboom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ --- C++函数后面加const修饰符相关的知识,希望对你有一定的参考价值。
C++函数后面的const,可以从下面两个方面进行理解:
- 申明一个成员函数的时候用const关键字是用来说明这个函数是 “只读(read-only)”函数,也就是说明这个函数不会修改任何数据成员,除非成员加了修改mutable或者你在函数中主动使用了const_cast!
- 为了声明一个const成员函数, 把const关键字放在函数括号的后面。声明和定义的时候都应该放const关键字。
下面看具体的示例:
#include<iostream>
using namespace std;
class temp
{
public:
temp(int age);
int getAge() const;
void setNum(int num);
private:
int age;
};
temp::temp(int age)
{
this->age = age;
}
int temp::getAge() const
{
age+=10; // #Error...error C2166: l-value specifies const object #
// 1> 如果前面的成员定义int age 改为mutable int age;就可以编译通过
// 2> 也可以使用const_cast强行删除const属性。 const_cast<temp *>(this)->age += 10;
return age;
}
void main()
{
temp a(22);
cout << "age= " << a.getAge() << endl;
}
以上是关于C++ --- C++函数后面加const修饰符的主要内容,如果未能解决你的问题,请参考以下文章