const 放在函数后表示什么意思


const 放在函数后表示这个函数是常成员函数, 常成员函数是不能改变成员变量值的函数。
const 限定符,它把一个对象转换成一个常量。
举例:
为了使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明:
class Point
{
public:
int GetX() const;
int GetY() const;
void SetPt (int, int);
void OffsetPt (int, int);
private:
int xVal, yVal;
};
const成员函数应该在函数原型说明和函数定义中都增加const限定:
int Point::GetY() const
{
return yVal;
}
class Set {
public:
Set (void){ card = 0; }
bool Member(const int) const;
void AddElem(const int);

};
bool Set::Member (const int elem) const
{
}
非常量成员函数不能被常量成员对象调用,因为它可能企图修改常量的数据成员:
const Set s;
s.AddElem(10); // 非法: AddElem不是常量成员函数
s.Member(10); // 正确

const 放在函数后表示这个函数是常成员函数, 常成员函数是不能改变成员变量值的函数。

const 限定符,它把一个对象转换成一个常量。

举例:

为了使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明:

class Point

{

public:

int GetX() const;

int GetY() const;

void SetPt (int, int);

void OffsetPt (int, int);

private:

int xVal, yVal;

};

const成员函数应该在函数原型说明和函数定义中都增加const限定:

int Point::GetY() const

{

return yVal;

}

class Set {

public:

Set (void){ card = 0; }

bool Member(const int) const;

void AddElem(const int);

};

bool Set::Member (const int elem) const

{

}

非常量成员函数不能被常量成员对象调用,因为它可能企图修改常量的数据成员:

const Set s;

s.AddElem(10); // 非法: AddElem不是常量成员函数

s.Member(10); // 正确


这样的函数叫常成员函数。常成员函数可以理解为是一个“只读”函数,它既不能更改数据成员的值,也不能调用那些能引起数据成员值变化的成员函数,只能调用const成员函数。
表示函数操作对于类的实例中的成员不进行改变。 这样在传递const A&的参数的时候,你只能调用后面有const的方法。保证不至于因为误操作而改变实例的状态
当const在函数名前面的时候修饰的是函数返回值,在函数名后面表示是常成员函数,该函数不能修改对象内的任何成员,只能发生读操作,不能发生写操作。