C++ --- C++函数后面加const修饰符

Posted Overboom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ --- C++函数后面加const修饰符相关的知识,希望对你有一定的参考价值。

C++函数后面的const,可以从下面两个方面进行理解:

  1. 申明一个成员函数的时候用const关键字是用来说明这个函数是 “只读(read-only)”函数,也就是说明这个函数不会修改任何数据成员,除非成员加了修改mutable或者你在函数中主动使用了const_cast!
  2. 为了声明一个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修饰符的主要内容,如果未能解决你的问题,请参考以下文章

类的成员函数后面加const有什么用(c++常问问题六)

[Reprint]C++函数前和函数后加const修饰符区别

C++之const关键字的基本使用

C++ const 修饰符

c++中const是怎么使用的?

C++ 类中的const关键字