函数原型

Function Prototype

本文关键字:原型 函数      更新时间:2023-10-16

我的老师说[A]是正确的答案,但为什么不是[C] ?选项[B]作为原型有什么问题?选项[B]对我来说非常好

以下哪个函数原型是完全可以接受的?

[A]。int Function(int Tmp = Show());

[B]。float Function(int Tmp = Show(int, float));

[C]。A和b都有

[D]。float = Show(int, float) Function(Tmp);

float Function(int Tmp = Show(int, float));

这定义了一个名为Function的函数,该函数返回float并接受一个名为Tmpint参数。Tmp被赋予一个默认值,但是默认值是无效的部分。Show(int, float)的值是多少?它似乎想要调用一个名为Show的函数(或构造一个Show类型的临时对象),将intfloat作为参数传递。但是intfloat不是函数的有效参数。

事实上,只有少数地方我能想到Show(int, float)可能是c++语法的产物(不使用预处理器)。首先是作为Show的函数声明的一部分。例如:

int Show(int, float);

第二,如果Show是一个类型,给出一个函数类型。例如:

foo<Show(int,float)>();

可能还有其他一些类似的情况,它们都没有真正调用称为Show的函数。