Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;返回函数指针的函数_C++_Function_Pointers - Fatal编程技术网

C++ C++;返回函数指针的函数

C++ C++;返回函数指针的函数,c++,function,pointers,C++,Function,Pointers,存在接受4个参数的函数add。前三个参数是对const int的引用,第四个参数是bool。函数返回int的指针 函数make_add_to接受3个参数。第一个是指向与Add函数具有相同结构的函数的指针,第二个参数是对const int的引用,第三个参数是bool。此函数返回指向函数的指针,该函数引用const int并返回int的指针 add_to是指向函数的指针,它是从函数make_add_to返回的 谁能完成这个?但我不确定“确保添加到”是否正确 #include <iostream

存在接受4个参数的函数add。前三个参数是对const int的引用,第四个参数是bool。函数返回int的指针

函数make_add_to接受3个参数。第一个是指向与Add函数具有相同结构的函数的指针,第二个参数是对const int的引用,第三个参数是bool。此函数返回指向函数的指针,该函数引用const int并返回int的指针

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;
}
#包括
使用名称空间std;
整数*相加(常数整数和x1,常数整数和x2,常数整数和x3,布尔y);
整型*(*使之与(常数整型和x5)相加)(整型*(*f)(常数整型和x1,常数整型和x2,常数整型和x3,布尔y),常数整型和x4,布尔y);
int main()
{
int x=3,y=2,z=1;
//cout这应该有效:

#include <iostream>


using namespace std;


int* add(const int &x1, const int &x2, const int &x3, bool y);
int* (*make_add_to(int*(const int&, const int&, const int&, bool),const int &x4, bool y))(const int&);

int main()
{
    int x=3,y=2,z=1;
    auto res_add = add(x,y,z,true);
    cout << *res_add;
    int* (*ptr)(const int &x1, const int &x2, const int &x3, bool y) = &add;
    auto res_add_ptr = ptr(x,y,z,true);
    cout << *res_add_ptr;
    /* might leak memory before reaching here */
    delete res_add; 
    delete res_add_ptr;

}

int * add(const int &x1, const int &x2, const int &x3, bool y)
{
    int *re = new int{0};
    *re += x1+x2+x3;
    return re;
}
#包括
使用名称空间std;
整数*相加(常数整数和x1,常数整数和x2,常数整数和x3,布尔y);
int*(*使之与(int*(常数int&,常数int&,常数int&,bool),常数int&x4,bool y)相加)(常数int&);
int main()
{
int x=3,y=2,z=1;
自动恢复添加=添加(x,y,z,true);
cout功能

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);   
未使用,且未使用
make_add_to接受3个参数首先是指向与add function具有相同结构的函数的指针,第二个参数是对const int的引用,第三个参数是bool。此函数返回指向引用const int并返回指向int的指针的函数的指针

它是一个指向函数的指针,该函数包含3个参数…

问这个问题,而不是命令我们完成一些事情。

/cout
re=&x;
是一个bugint x=x1+x2+x3;int*re=&x;返回re;
使用fptr=int*(*)(const int&,const int&,const int&,bool);
会让你的代码更容易阅读。
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);