如果我有一个将指针变量作为输入的函数,有没有办法可以将函数作为参数传递?

时间:2016-06-11 17:32:37

标签: c++ function pointers arguments

解释有点乏味,但我会尝试。我有一个函数,它将地址作为输入。然后不是先保存变量,所以我可以将地址传递给该变量到函数,我想直接输入函数作为参数。有没有办法做到这一点?

这样的事情:

#include <iostream>
#include "main.h"

using namespace std;

int main()
{
    printFunction(returnOne());
   return 0;
}

void printFunction(int *a) {
    cout << a << endl;
}

int returnOne() {
    return 1;
}

1 个答案:

答案 0 :(得分:2)

嗯,显然returnOne()与返回类型的void printFunction(int*)不一致,应该是这样的:

int* returnOne() {
    static int one = 1;
    return &one;
}

int* returnOne() {
    return new int(1);
}

另一种选择是将结果地址视为

printFunction(&returnOne());
           // ^

但是对于像

这样的实现,这会产生未定义的行为
int returnOne() {
    return 1;
}

因为它取一个临时值的地址。