c-struct指针函数指向其他struct的其他函数
作者:互联网
我想知道是否可以将其他结构的功能指向一个结构:
例:
typedef struct
{
int func(int z)
{
return z * 2;
}
} sta;
typedef struct
{
int(*this.func)(int);
} stah;
int main()
{
sta sa;
stah sah;
sah.func = &sa.func;
return 0;
}
这可能在结构中吗?
解决方法:
func的声明应如下所示:
int(sta::*func)(int);
或者,或者:
using my_type = int(sta::*)(int);
my_type func;
这更容易阅读:my_type是sta成员函数的类型指针的别名,该成员函数获取一个int并返回一个int.
func仅仅是类型为my_type的数据成员.
为了将指向成员函数的实际指针分配给func,您可以改为执行以下操作:
sah.func = &sta::func;
然后可以按以下方式调用它:
(sa.*sah.func)(0);
标签:c,struct,c14,function-pointers 来源: https://codeday.me/bug/20191013/1905337.html