gpt4 book ai didi

C++函数重载(函数多态)

转载 作者:行者123 更新时间:2023-11-28 07:19:28 24 4
gpt4 key购买 nike

好吧,我非常困惑,因为我阅读了类笔记并听了讲座。

如果C++中存在以下所有函数程序并首先制作原型(prototype),这确实

TestIt('A', int('A')) 调用?

一个。 int TestIt(char ch, char ix);

B. int TestIt(char ch, short ix);

C. int TestIt(char ch = 'A');

D.依赖于实现

E.无

这是一个技巧问题吗?

TestIt('A', 'A');

会返回 char char 吗?

是 B 是因为 short 是 int 的一种吗?

例如int('A')

也可能没有。

最佳答案

没有,因为它不明确。

对于 TestIt('A', int('A')),参数是 charint 类型。两个参数意味着 C) 不是一个可行的候选者。 A) 和 B) 是可行的。

但是,第二个参数必须从 int 转换为 shortchar。两者都是整数转换。因此,在比较重载时,两者具有相同的等级。对于给定的一组参数,两个或多个具有相同等级的函数(并且不适用决胜局)=> 不明确。

如果你调用 TestIt('A', 'A') 并且候选人是

  1. void TestIt(char, int)
  2. void TestIt(char, short)

作为练习,您可以尝试找出为什么在这种情况下它没有歧义;)

关于C++函数重载(函数多态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19736879/

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