【发布时间】:2020-04-29 11:11:34
【问题描述】:
存在带有 4 个参数的函数 add。前 3 个参数是对 const int 的引用,第四个参数是 bool。该函数返回 int 的指针。
函数 make_add_to 接受 3 个参数。第一个是指向与 Add 函数结构相同的函数的指针,第二个参数是对 const int 的引用,第三个是 bool。此函数返回一个指向函数的指针,该函数接受对 const int 的引用并返回 int 的指针。
add_to是一个函数指针,由函数make_add_to返回
谁能完成这个?我不确定 make_add_to 是否正确
#include <iostream>
using namespace std;
int * add(const int &x1, const int &x2, const int &x3, bool y);
int * (*make_add_to(const int &x5))(int *(*f)(const int &x1, const int &x2, const int &x3, bool y),const int &x4, bool y);
int main()
{
int x=3,y=2,z=1;
//cout << *dodaj(x,y,z,true);
int *(*ptr)(const int &x1, const int &x2, const int &x3, bool y) = &add;
//cout << *ptr(x,y,z,true);
// (*dodaj_do)
}
int * add(const int &x1, const int &x2, const int &x3, bool y)
{
int * re = new int;
int x = x1+x2+x3;
re = &x;
return re;
}
【问题讨论】:
-
//cout
-
re = &x;是一个错误 -
int x = x1+x2+x3; int * re = &x;返回重新;
-
using fptr = int *(*)(const int &, const int &, const int &, bool);会让你的代码更容易阅读。