C++ 功能原型

C++ 功能原型,c++,function,C++,Function,我的老师说[A]是正确的答案,但为什么不是[C]。选项[B]作为原型有什么问题。选项[B]在我看来很好 以下哪种功能原型是完全可以接受的 [A] int函数(int Tmp=Show()) [B] 浮点函数(int Tmp=Show(int,float)) [C] 。A和B都有 [D] 浮点=显示(整数,浮点)功能(Tmp) 这定义了一个名为function的函数,该函数返回一个float,并接受一个名为Tmp的int参数。正在为Tmp提供默认值,但默认值是无效的部分。Show(int,floa

我的老师说[A]是正确的答案,但为什么不是[C]。选项[B]作为原型有什么问题。选项[B]在我看来很好

以下哪种功能原型是完全可以接受的

[A] <代码>int函数(int Tmp=Show())

[B] <代码>浮点函数(int Tmp=Show(int,float))

[C] 。A和B都有

[D] <代码>浮点=显示(整数,浮点)功能(Tmp)

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

<>实际上,只有几个地方我能想到:<代码>显示(int,浮动)< /> >是C++语法的可能产生(不使用预处理器)。首先是作为
Show
函数声明的一部分。例如:

int Show(int, float);
第二个是,如果
Show
是一个类型,则给出一个函数类型。例如:

foo<Show(int,float)>();
foo();
可能还有其他一些类似的情况,它们实际上都没有调用名为
Show
的函数

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

<>实际上,只有几个地方我能想到:<代码>显示(int,浮动)< /> >是C++语法的可能产生(不使用预处理器)。首先是作为
Show
函数声明的一部分。例如:

int Show(int, float);
第二个是,如果
Show
是一个类型,则给出一个函数类型。例如:

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

可能还有其他一些类似的情况,其中没有一个实际调用名为
Show

的函数。请尝试编译所有这些函数,看看会出现什么错误/警告。我遇到两个错误:默认参数不在参数列表的末尾,类型名称不允许。这意味着什么呢?试着编译它们,看看会出现什么错误/警告。我得到两个错误:默认参数不在参数列表的末尾,类型名称是不允许的。为什么int和float不是函数的有效参数???我认为重要的是函数Show返回一个int值???@Lim,因为必须给默认参数一些默认值。例如
float函数(inttmp=5)很好。
Tmp
参数的默认值为
5
。对于
Show
的函数调用,必须执行类似于
float函数的操作(int Tmp=Show(5,6.0f))为什么int和float不是函数的有效参数???我认为重要的是函数Show返回一个int值???@Lim,因为必须给默认参数一些默认值。例如
float函数(inttmp=5)很好。
Tmp
参数的默认值为
5
。对于
Show
的函数调用,必须执行类似于
float函数的操作(int Tmp=Show(5,6.0f))