iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中函数重载定义与原因是什么
  • 216
分享到

C++中函数重载定义与原因是什么

2023-06-29 09:06:13 216人浏览 安东尼
摘要

小编给大家分享一下c++中函数重载定义与原因是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!引例如果要求你只能通过print函数,即能打印字符串,又能打印一个整型。虽然在C语言中我们可以通过 print_i 和prin

小编给大家分享一下c++中函数重载定义与原因是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

    引例

    如果要求你只能通过print函数,即能打印字符串,又能打印一个整型。

    虽然在C语言中我们可以通过 print_i 和print_s来实现功能。

    但是C++更方便。C++支持同一函数名,完成类似的功能的语法。

    void print(int i){    cout << "print a integer :" << i << endl;}void print(string str){    cout << "print a string :" << str << endl;}int main(){    print(12);    print("hello world!");    return 0;}

    函数重载的定义

    函数重载是指在同一作用域内(可以浅显理解为同一文件内,毕竟函数具有外联系),可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处.

    函数重载规则

    函数重载的条件:参数个数 或 类型 或 顺序必须不同,函数名不看

    C++中函数重载定义与原因是什么

    为什么C不支持函数重载而C++可以

    要想达到函数重载必然解决:函数命名问题 &mdash;编译器只需要将用户定义的各种标识符,再加载内存中,对其进行修饰即----内部名称

    因为如果不解决函数命名问题,在编译时,就无法形成符号表,同时在链接阶段时,汇总符号表也成问题,毕竟符号表决定了,程序到达调用哪个函数。

    C++中函数重载定义与原因是什么

    内部名称

    • 内部名称:C和C++的语言实现都会按照特定规则,将定义的标识符(各种变量名,函数名,类型,命名空间等)转换为对应的内部名称.通过内部名称编译器就可以识别各种标识符.

    • 对于C,仅在标识符加上前缀&lsquo;``_`&rsquo;即swap()》》_swap()

    • 如果从唯一识别函数作用来看,这种规则没有任何用:毕竟除了static和命名空间域里面的函数,函数都具有外联性,一但在不同文件出现同名函数,程序就CREASH。

    • 对于C++,不同编译器下是不同的:

    linux

    C++中函数重载定义与原因是什么

    window:

    C++中函数重载定义与原因是什么

    正是通过这种内部命名规则,函数重载成为可能。

    看完了这篇文章,相信你对“C++中函数重载定义与原因是什么”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网其他教程频道,感谢各位的阅读!

    --结束END--

    本文标题: C++中函数重载定义与原因是什么

    本文链接: https://www.lsjlt.com/news/324149.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • C++中函数重载定义与原因是什么
      小编给大家分享一下C++中函数重载定义与原因是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!引例如果要求你只能通过print函数,即能打印字符串,又能打印一个整型。虽然在C语言中我们可以通过 print_i 和prin...
      99+
      2023-06-29
    • C++函数重载的定义与原因详解
      目录引例函数重载的定义函数重载规则为什么C不支持函数重载而C++可以内部名称总结引例 如果要求你只能通过print函数,即能打印字符串,又能打印一个整型。 虽然在C语言中我们可以通过...
      99+
      2024-04-02
    • C++函数重载怎么定义使用
      这篇文章主要介绍了C++函数重载怎么定义使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++函数重载怎么定义使用文章都会有所收获,下面我们一起来看看吧。一、函数重载分析(上)1.1 重载的定义定义:同一个标...
      99+
      2023-06-30
    • C++ 函数重载中重载函数的规则是什么?
      c++++ 重载函数的规则如下:1. 参数列表不同(数量、类型或顺序);2. 参数数量必须不同;3. 参数类型不同;4. 参数顺序不同;5. const 和引用限定符不影响重载。 C+...
      99+
      2024-04-14
      c++ 函数重载
    • C++ 函数重载和重写中的虚函数与动态绑定
      函数重载和重写:函数重载允许在同一类中创建具有不同参数列表的同名函数,而函数重写是在继承关系中用子类覆盖基类的同名函数。虚函数和动态绑定:虚函数允许子类以自己的方式实现父类方法,并在函数...
      99+
      2024-04-20
      函数重载 虚函数 c++
    • C++ 函数重载中函数名的作用是什么?
      在 c++++ 中,函数名在重载函数中起区分作用,每个重载函数都有一个唯一的函数签名(包括函数名和参数列表),编译器根据签名确定调用哪个函数。 函数名在 C++ 函数重载中的作用 在 ...
      99+
      2024-04-13
      函数重载 函数名 c++
    • C++ 函数重载中歧义调用的处理方法是什么?
      歧义调用发生在编译器无法确定调用哪个重载函数时。处理方法包括:为每个重载函数提供唯一的函数签名(参数类型和数量)。使用显式类型转换强制调用正确的函数,如果一个重载函数的参数类型更适合给定...
      99+
      2024-04-13
      函数重载 歧义调用 c++ 作用域
    • C++函数重载介绍与原理详解
      目录函数重载函数重载的概念函数重载的原理(名字修饰)总结:extern “C”函数重载 函数重载的概念 函数重载是函数的一种特殊情况,C++允许在同一作用域中...
      99+
      2024-04-02
    • c++中什么函数不能重载
      在 c++ 中,以下类型的函数不能重载:1. 构造函数和析构函数;2. 友元函数;3. 运算符函数;4. 强制类型转换函数。原因是这些函数具有特殊的语义和语法规则,重载可能会导致歧义和错...
      99+
      2024-04-22
      c++
    • c++函数重载的条件是什么
      C++ 中函数重载(Function Overloading)是指在同一个作用域内,可以有多个函数具有相同的名称,但是它们的参数列表...
      99+
      2024-03-07
      c++
    • C++ 函数重载与函数模板有什么异同?
      函数重载和函数模板在目的和实现方式上不同。函数重载创建同名但参数不同的函数,而函数模板描述了可根据类型参数生成函数实例的函数族。函数重载在编译时生成特定函数,函数模板在运行时生成,且效率...
      99+
      2024-04-27
      函数重载 函数模板 c++
    • Linq中用户定义函数的原理是什么
      Linq中用户定义函数的原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linq用户定义函数我们可以在LINQ to SQL中使用Linq用户定义函数。只要把Lin...
      99+
      2023-06-17
    • C++函数重载、隐藏与覆盖重写的方法是什么
      这篇文章主要介绍了C++函数重载、隐藏与覆盖重写的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++函数重载、隐藏与覆盖重写的方法是什么文章都会有所收获,下面我们一起来看看吧。1 函数重载定义:C+...
      99+
      2023-06-29
    • C++ 静态函数的定义是什么?
      静态函数是类中不属于任何对象的独立函数,用于封装类级操作和全局访问。它们的特点包括:1. 不依赖于对象;2. 全局可见性;3. 不可继承和重写。静态函数可用于优化性能和简化对类级功能的访...
      99+
      2024-04-16
      c++ 静态函数
    • C++ 函数重载中常量的作用是什么?
      常量在 c++++ 函数重载中可发挥以下作用:区分函数参数列表,根据不同用途使用不同常量类型作为参数。提供默认参数值,简化函数调用。 C++ 函数重载中常量的作用 在 C++ 中,函数...
      99+
      2024-04-28
      c++ 函数重载 常量
    • c语言函数的定义与调用方法是什么
      C语言函数的定义和调用方法如下:1. 函数的定义:在C语言中,函数的定义包括函数的返回类型、函数名、参数列表和函数体。函数的定义一般...
      99+
      2023-08-18
      c语言
    • c语言中函数的定义方法是什么
      在C语言中,函数的定义通常包含以下几个部分:1. 返回类型:函数可以有不同的返回类型,如int、float、void等,用来表示函数...
      99+
      2023-09-29
      c语言
    • C++ 函数重载的局限性是什么?
      函数重载存在局限性,包括参数类型模糊、参数顺序模糊、指针(const)函数重载限制、以及默认参数和可变参数函数重载限制。具体来说:参数类型模糊:相似参数类型可能导致编译器无法确定调用哪个...
      99+
      2024-04-28
      c++ 函数重载 局限性
    • C++ 函数模板中函数重载的实现原理?
      在 c++++ 函数模板中,函数重载可以通过编译器生成不同的符号名称和代码生成来实现。编译器根据传入的参数类型进行匹配,选择最匹配的重载。例如,模板中定义了 print(t) 和 pri...
      99+
      2024-04-15
      函数重载 函数模板 c++
    • php中要定义字符串的原因是什么
      小编给大家分享一下php中要定义字符串的原因是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在PHP语言中声明字符串有三种方式:1:用单引号声明2:用双引号声明3:用字界符声明1:对于单引号声明用英文半角的单引号,将字...
      99+
      2023-06-15
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作