1、普通成员函数才有常函数。C++中,构造函数、析构函数、和全局函数、静态函数都不能是常方法。构造函数用于对象初始化,所以不能设置成常方法,析构函数也一样。其他函数是因为没有this指针。
class Object
{
private:
int Value;
public:
Object(int value) :Value(value) {}
~Object() {}
int& Val()
{
return Value;
}
const int& Val() const
{
return Value;
}
};
这里const int& Val() const,相当于const int& Val(const Object * const this).