思考这样一个问题:在C++中,两个具有相同的函数名,相同的参数列表,但是返回值类型不同的函数,是否可以重载?
答案是:
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
可以!
有些朋友可能会奇怪,函数名也相同,参数列表也相同,只有返回值类型不同,这不就相当于重定义了吗?咋有可能通过编译呢?
一个demo当你脑中提出这个疑问的时候,就说明你忽略了一种特殊情况,你忽略了关键字const对函数的修饰。
我们不说废话,直接上demo:
由图可见:
有const的函数和没有const的函数,是会被区别对待的。
const对象(图中对应x)会优先调用被const修饰的函数;而普通对象(图中对应y)会优先调用没有被const修饰的函数。
网友评论