新手学c++, 想定义一个返回函数的指针 的容器, 编译遇到了这个问题实在想不明白, 函数的形参怎么变成未申明了
下面有源码,大佬们可以给点提示 不甚感激



源码: common.h
#ifndef COMMON_H
#define COMMON_H
#include <iostream>
#include <string>
#include <cstring>
#include <cctype>
#include <cstdlib>
#include <vector>
#include <iterator>
using std::cin;
using std::cout;
using std::endl;
using std::cerr;
using std::string;
using std::vector;
int (*p) (int, int);
int (*pt) (int, int, char);
int *data;
using PF = int (*) (int, int);
using PP = int (int, int);
#endif
源码: 02.cpp
#include "../common.h"
int (*p1) (int a, int b) {
*data = a + b;
return data;
}
int (*p2) (int a, int b) {
*data = a - b;
return data;
}
int (*p3) (int a, int b) {
*data = a * b ;
return data;
}
int (*p4) (int a, int b) {
if (b == 0) return 0;
*data = a/b;
return data;
}
int main(){
vector<decltype(PF)> data1 {p1, p2, p3, p4};
// vector<decltype(PP)> data2 {pp1, pp2, pp3, pp4};
cout << data1.size() << endl;
// cout << data2.size() << endl;
return 0;
}
下面有源码,大佬们可以给点提示 不甚感激



源码: common.h
#ifndef COMMON_H
#define COMMON_H
#include <iostream>
#include <string>
#include <cstring>
#include <cctype>
#include <cstdlib>
#include <vector>
#include <iterator>
using std::cin;
using std::cout;
using std::endl;
using std::cerr;
using std::string;
using std::vector;
int (*p) (int, int);
int (*pt) (int, int, char);
int *data;
using PF = int (*) (int, int);
using PP = int (int, int);
#endif
源码: 02.cpp
#include "../common.h"
int (*p1) (int a, int b) {
*data = a + b;
return data;
}
int (*p2) (int a, int b) {
*data = a - b;
return data;
}
int (*p3) (int a, int b) {
*data = a * b ;
return data;
}
int (*p4) (int a, int b) {
if (b == 0) return 0;
*data = a/b;
return data;
}
int main(){
vector<decltype(PF)> data1 {p1, p2, p3, p4};
// vector<decltype(PP)> data2 {pp1, pp2, pp3, pp4};
cout << data1.size() << endl;
// cout << data2.size() << endl;
return 0;
}




