C++函数调用问题

Vla*_*lad 2 c++ function

我有一个关于函数调用的问题,如下例所示:

int main()
{
    int a, b;
    cin  >> a >> b >> endl;
    cout << *f(a,b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

那么*f(a,b)是一个有效的函数调用吗?

编辑::抱歉错误,我现在修理他们我有点累了

GMa*_*ckG 6

无论如何f,*f(a, b)尝试将间接运算符应用于结果f(a, b).

如果f是一个函数指针,你试图调用它,你可以这样做:

(*f)(a, b)
Run Code Online (Sandbox Code Playgroud)

做得f(a, b)更简单.

  • @Vlad:也许你应该把它添加到问题中,这样我们就不必尝试阅读你的想法了,是吗?在这种情况下,它将间接应用于任何`f(a,b)`返回.(如果它不能这样做,你的程序就是格式错误.也就是说,`f`需要返回一个指针或一个带有一元`operator*`重载的类类型.) (2认同)

Jer*_*fin 6

代码至少可能是合理的.对于它的工作,f必须被定义为返回以下两种各种各样的事情的函数:要么返回一个指针,在这种情况下,*解引用指针,所以不管它是指向被发送到标准输出.否则,f必须返回一些用户定义的类型,该类型定义operator *为返回与其兼容的内容cout.