小编mxw*_*mxw的帖子

如何使 void(*)(...) 作为结构成员

获取演示代码

#include <iostream>
#include <map>
#include <vector>
using namespace std;

typedef struct Student
{
    public: 
        Student(){}
        ~Student(){}
        static void print(int a,int b){printf("age is a\n");}
}Student;

int main(){
    void (*p)(int, int) = &Student::print;

    vector<void(*)(int,int)> tt;
    tt.push_back(p);
    tt[0](1,1);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我想将 void(*)(int,int) 作为结构成员时,例如

struct void_func_st{
    void(*)(int,int) f;
    int a;
};
Run Code Online (Sandbox Code Playgroud)

代码错误。我不知道该结构是否可以实际制作,因为我不熟悉 void(*)(...) 的工作原理。或者我只是没有找到使 void(*)(...) 作为结构成员的正确方法。有人可以给一些建议吗?

c++ struct void-pointers

0
推荐指数
2
解决办法
324
查看次数

标签 统计

c++ ×1

struct ×1

void-pointers ×1