前些天一直困扰一个问题。
display函数貌似只有返回参数不一样,为什么能够重载?
今天在翻C++ primer终于找到了答案。
类的成员函数实际上有一个隐式参数this(一个指向该类对象的const指针),
如
可以看成
这样的话,之前那两个重载函数并不是只有返回值不同,第一个隐含的参数也是不一样的。
加上隐含的this参数后实际上是
非const成员函数中this是一个指向类对象的const指针。(可以改变this指向的对象的值,但是不能改变this所保存的地址)
而const成员函数中this是一个指向const类对象的const指针.(既不能改变this所保存的地址,也不可以改变this指向对象的值)
既然两个函数的参数不一样,那么可以实现重载也是理所当然的了。