C++高级类与指针的深入探索
1. 高级类的相关知识
1.1 常量成员函数
在C++里,若使用 const
关键字将成员函数声明为常量,就表明该函数不会改变类中任何成员的值。像下面这样,把 const
关键字放在括号之后,就能将函数声明为常量:
void displayPage() const;
用于获取变量值的访问器(也叫getter函数)通常是常量函数。例如之前提到的 Tricycle
类有两个访问器:
void setSpeed(int newSpeed);
int getSpeed();
setSpeed()
函数不能是常量函数,因为它会改变成员变量 speed
的值。而 getSpeed()
函数可以是常量函数,因为它完全不会改变类,只是返回成员变量 speed
的当前值。所以,该函数的声明可以变为:
int getSpeed() const;
要是把函数声明为 const
,但在函数实现里通过改变成员的值来改变对象,编译器就会将其标记为错误。尽可能多地把函数声明为 const
是良好