gpt4 book ai didi

c++ - 函数重载在运行时如何工作,为什么要重载?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:18 24 4
gpt4 key购买 nike

假设我有一个名为 ClothingStore 的类。该类有 3 个成员函数,将访问者指向商店的正确部门。成员函数是 ChildrenDept、MenDept 和 WomenDept,具体取决于访问者是 child 、男人还是女人。

函数重载可用于生成 3 个具有相同名称的函数,例如 PointToDept,但采用不同的输入参数(child、man、woman)。

当程序执行时,运行时实际上发生了什么?

我的猜测是编译器在程序中添加了 switch 语句,以选择正确的成员函数。但这让我想知道 - 使用重载函数而不是使用 switch 语句创建自己的函数在程序性能方面有什么好处吗?同样,我对该部分的唯一结论是代码可读性。谢谢。

最佳答案

My guess is that compiler adds switch statements to the program, to select the right member function.

这是一个错误的猜测。 C++ 是一种静态类型语言。变量的类型在运行时不会改变。这意味着关于调用哪个非多态重载的决定总是可以在编译时做出。标准中的第 13.3 节过载解决确保了这种情况。当可以在编译时做出决定时,没有理由做出运行时决定。在大多数实现中,具有非多态重载函数的运行时成本为零。唯一的异常(exception)可能是 C++ 解释器。

关于c++ - 函数重载在运行时如何工作,为什么要重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21617232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com