【发布时间】:2021-08-26 10:52:04
【问题描述】:
我正在学习函数指针,并且能够在类之间传递函数指针。 现在我正在寻找接收所有其他类的函数指针参数。
fncptr2.h
#ifndef FNCPTR2
#define FNCPTR2
class fncptr1;
class fncptr2
{
public:
int implfncptr(int (fncptr1::*add)(int,int));
};
#endif
fncptr2.cpp
#include "fncptr2.h"
#include "fncptr1.h"
#include <iostream>
using namespace std;
fncptr1 ff;
int fncptr2::implfncptr(int (fncptr1::*add)(int, int))
{
return (ff.*add)(1,2);
}
fncptr1.h
#ifndef FNCPTR1
#define FNCPTR1
class fncptr1
{
public:
int addition(int a,int b);
void testfncptr();
};
#endif
fncptr1.cpp
#include "fncptr1.h"
#include "fncptr2.h"
#include <iostream>
using namespace std;
int fncptr1::addition(int a,int b)
{
return a + b;
}
void fncptr1::testfncptr()
{
fncptr2 f;
f.implfncptr(&fncptr1::addition);
}
main.cpp
fncptr1 f;
f.testfncptr();
上面的示例代码工作正常。现在希望在
中接收所有函数指针
int implfncptr(int (fncptr1::*add)(int,int));
不是接收 fncptr1 函数指针,而是希望从所有其他类接收函数指针
例子
int implfncptr(int (AllClassInstance::*add)(int,int));
【问题讨论】:
-
你的问题不太合理。您是否建议您想要一个更通用的答案?
标签: c++ function-pointers