编写此指针函数代码的长格式是什么?

用户名

我是C ++的新手。仍在努力使我的脑袋围绕这种语言的回调方式工作。

我有点理解指针函数,但是我不知道它是如何工作的。

#include <iostream>

int add(int x, int y){
    return x+y;
}

int subtract(int x, int y){
    return x-y;
}

typedef int(*t_yetAnotherFunc)(int,int);
t_yetAnotherFunc doMoreMath(char op){
    if(op == '+')
        return add; // equivalent of add(x,y), where x and y are passed from the function calling doMoreMath()?
    else if(op == '-')
        return subtract;
}

int main(){
    int x = 2;
    int y = 22;
    t_yetAnotherFunc yetAnotherFunc=    doMoreMath('+');
    int yetAnotherFuncOutput=           yetAnotherFunc(x,y);
    std::cout << yetAnotherFuncOutput << '\n';

    return 0;
}

如何xy从去yetAnotherFuncOutputyetAnotherFunc

或者用另一种方式问:如果没有,这会是什么样typedef

jblixr

让我们从 typedef int(*t_yetAnotherFunc)(int,int)

t_yetAnotherFunc是可以指向一个方法的类型,该方法接受两个ints作为参数并且返回一个值int

t_yetAnotherFunc doMoreMath(char op)方法返回addsubtract基于char op这里addsubtract返回语句必须被视为那些方法的地址,而不是函数调用。

t_yetAnotherFunc yetAnotherFuncc = doMoreMath('+');

按照t_yetAnotherFunc现在的定义,yetAnotherFuncc可以做成点add方法。

如果您需要使用其指针(此处调用add具有参数的函数(此处),则需要通过其指针提供其参数这是通过以下行完成的。(int x, int y)yetAnotherFunccyetAnotherFuncc(x, y)

int yetAnotherFuncOutput = yetAnotherFunc(x,y);

add使用参数x(2)和y(22)调用该函数并且返回值add存储在中yetAnotherFuncOutput

没有typedef它,将是一个复杂的定义,如下所示

int(*doMoreMath(char op))(int, int) {
  if(op == '+')
     return add
  else if(op == '-')
     return subtract;
}

int(*yetAnotherFunc)(int, int) = doMoreMath('+');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

编写此代码的更好方法是什么?

来自分类Dev

编写此代码的各种方式是什么?

来自分类Dev

编写此函数的正确(有效)方法是什么?

来自分类Dev

这是什么类型的函数(带有代码的指针函数)?

来自分类Dev

此数据的格式是什么?

来自分类Dev

Linux中的长格式是什么?

来自分类Dev

使用 Python 语法编写此 PHP 代码的最简单方法是什么?

来自分类Dev

JavaScript:它可以工作,但是编写此函数的更有效方法是什么?

来自分类Dev

此代码有什么作用?(关于指针)

来自分类Dev

编写长if-else语句的pythonic方法是什么?

来自分类Dev

打印内置函数的函数指针是什么

来自分类Dev

此DateTime的JSON格式是什么?

来自分类Dev

此日期值的格式是什么?

来自分类Dev

为什么此函数指针失败?

来自分类Dev

编写Ruby代码的正确方法是什么?

来自分类Dev

指针:这行代码是什么意思?

来自分类Dev

为什么此C代码示例使用指向指针的指针?

来自分类Dev

为什么此代码运行的字符组合比必要的要长?

来自分类Dev

在C#中调用此C函数的正确语法是什么?该函数使用指针和数组

来自分类Dev

此JavaScript代码的意义是什么?

来自分类Dev

此Java代码是什么意思

来自分类Dev

此Java代码结构的术语是什么?

来自分类Dev

此旧版代码的含义是什么?

来自分类Dev

此序言代码背后的逻辑是什么?

来自分类Dev

此sass代码是什么意思?

来自分类Dev

此JavaScript代码的目的是什么?

来自分类Dev

此VB代码是什么意思?

来自分类Dev

jQuery:此代码是什么意思?

来自分类Dev

此Java代码是什么意思