美文网首页
一个特殊的“函数重载”

一个特殊的“函数重载”

作者: Closears | 来源:发表于2017-10-14 20:28 被阅读5次

思考这样一个问题:在C++中,两个具有相同的函数名,相同的参数列表,但是返回值类型不同的函数,是否可以重载?

答案是:

















可以!

有些朋友可能会奇怪,函数名也相同,参数列表也相同,只有返回值类型不同,这不就相当于重定义了吗?咋有可能通过编译呢?

当你脑中提出这个疑问的时候,就说明你忽略了一种特殊情况,你忽略了关键字const对函数的修饰。
我们不说废话,直接上demo:

一个demo

由图可见:
const的函数和没有const的函数,是会被区别对待的。
const对象(图中对应x)会优先调用被const修饰的函数;而普通对象(图中对应y)会优先调用没有被const修饰的函数。

相关文章

  • C#多态的表现-方法重载,方法重写以及密封类的特点

    方法重载 方法重载:构造函数就属于特殊的方法重载 方法重载:是指同一个类中相同方法的不同行为 方法重载的特点: 1...

  • 一个特殊的“函数重载”

    思考这样一个问题:在C++中,两个具有相同的函数名,相同的参数列表,但是返回值类型不同的函数,是否可以重载? 答案...

  • C#多态

    静态多态 函数重载对相同函数名的函数有多个定义,需要参数列表中的参数类型或者个数不同 运算符重载重载运算符是特殊名...

  • 面向对象

    对象的特殊函数 构造函数,可重载 hashCode() equals() toString() 不可变性 Immu...

  • OOP多态和密封类

    学习oop多态 1.方法重载 2.方法重写 3.里氏替换原则 方法重载:构造函数属于特殊的方法重载 方法重载是指同...

  • Vue3源码中的TypeScript重载函数的作用

    TypeScript重载函数的作用案例 C++中的一个概念(百度百科): 函数重载一般指重载函数。 重载函数是函数...

  • C++ 重载运算符和重载函数(2)

    重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一...

  • OOP(多态,重载,重写,虚方法,密封类)

    多态 学习OOp多态*1.方法重载*2.方法重写*3.里氏替换原则**方法重载:构造函数就属于特殊的方法重载*方...

  • Swift--构造与析构

    构造函数 构造函数重载 析构函数 构造函数 在面向对象的数据类型中有一种特殊的函数或者叫做特殊的方法,它的作用是用...

  • C++中的操作符重载

    操作符重载 C++中的重载能够扩展操作符的功能 操作符的重载以函数的方式进行 本质:用特殊形式的函数扩展操作符的功...

网友评论

      本文标题:一个特殊的“函数重载”

      本文链接:https://www.haomeiwen.com/subject/caefuxtx.html