为什么重载函数不能用返回值类型的不同来区分函数??求解脱~

为什么重载函数不能用返回值类型的不同来区分函数??求解脱~,第1张

因为重载函数返回值不像名称和参列一样用于反射以识别函数调用对象,所以它不能用来区分是否重载。参列和名称两个都匹配能标示你调用的是哪个对象,而返回值如果不一样或者一样,和你调用哪个对象有关么?很显然,所以返回值不能作为函数的重载判断依据。它只是结果的一个类型定义。

A)extern

补充:
刚才试了一下,你说的正确,应该是 C) const

class A {
void f() {}
const void f() const {}
};

const是可以区分重载函数的

多态是C++最基本,最重要的特性之一,
函数重载是多态性的形式之一
函数模板是写一次代码,就要以应用到各种类型
函数重载是函数名相同而参数不同的两个函数
这些东西你不看书,指望在这儿问一句就会了

1、不清楚你想问什么,重载函数是靠编译器在编译阶段选择函数版本,也就是说在运行时其实只有一个函数版本被你调用,你这里用f,这不是函数调用啊,调用函数怎么能省()呢,也就是说只取函数的地址,可是由于你没有提供实参,编译阶段应该没有选择版本,所以取两个名字同为f的函数的地址当然报错
2、如果类对象是const型,那么对象只能调用由const来修饰的成员函数,反过来说,你把A a;
改成const A a; 就ok了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/13317419.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-31
下一篇2025-08-31

发表评论

登录后才能评论

评论列表(0条)

    保存