C++中的反射。 C++中如何将函数作为参数传递
Reflection in C++. How to pass a func as a parameter in c++
我是 C++ 新手。所以我正在尝试做一些微不足道但不知道如何做的事情。
我有一个 Class 方法:
class Method{
private:
std::string nameMethod;
Func f;
public:
Method(std::string name,Func fun){
nameMethod=name;
f=fun;
};
我想创建一个名为 methDaniel 的方法类型的对象,它具有
- string nameMethod = addDaniel.
- f = 打印 "Daniel".
的函数
如何在 main.cpp 文件中执行此操作?
#include "Method.h"
using namespace std;
typedef void (*t_somefunc)();
void addDaniel(){
cout<<"Daniel";
}
int main(){
addDaniel();
t_somefunc afunc = &addDaniel;
Method* methDaniel = new Method("addDaniel",afunc);
}
将定义t_somefunc
的typedef
移动到"Method.h"。
将 f
的类型从 Fun
更改为 t_somefunc
。
Method.h:
typedef void (*t_somefunc)();
class Method{
private:
std::string nameMethod;
t_somefunc f;
public:
Method(std::string const& name, t_somefunc fun) : nameMethod(name), f(fun){}
然后,在main
:
Method* methDaniel = new Method("addDaniel", addDaniel);
我是 C++ 新手。所以我正在尝试做一些微不足道但不知道如何做的事情。
我有一个 Class 方法:
class Method{
private:
std::string nameMethod;
Func f;
public:
Method(std::string name,Func fun){
nameMethod=name;
f=fun;
};
我想创建一个名为 methDaniel 的方法类型的对象,它具有
- string nameMethod = addDaniel.
- f = 打印 "Daniel". 的函数
如何在 main.cpp 文件中执行此操作?
#include "Method.h"
using namespace std;
typedef void (*t_somefunc)();
void addDaniel(){
cout<<"Daniel";
}
int main(){
addDaniel();
t_somefunc afunc = &addDaniel;
Method* methDaniel = new Method("addDaniel",afunc);
}
将定义t_somefunc
的typedef
移动到"Method.h"。
将 f
的类型从 Fun
更改为 t_somefunc
。
Method.h:
typedef void (*t_somefunc)();
class Method{
private:
std::string nameMethod;
t_somefunc f;
public:
Method(std::string const& name, t_somefunc fun) : nameMethod(name), f(fun){}
然后,在main
:
Method* methDaniel = new Method("addDaniel", addDaniel);