1、基于成员函数是否为const,可以重载一个成员函数,同样基于一个指针形参是否指向const,可以重载一个函数。
2、const对象只能使用const成员,非const对象可使用任一成员,但会更好的匹配非const版本
3、比如:
class Screen{
public:
Screen& display(std::ostream &os){
do_display(os);return *this;
}
const Screen& display(std::ostream &os){
do_display(os);return *this;
}
private:
vid do_display(std:sotream &os) const{os<<contents;}
}
Screen myScreen(5,3);
const Screen blank(5,3);
myScreen优先调用非const版本display
blank只能调用const版本的display