gpt4 book ai didi

c++ - C++ 中的函数指针数组

转载 作者:太空狗 更新时间:2023-10-29 20:38:59 26 4
gpt4 key购买 nike

我想弄清楚如何制作指向类内部函数的指针数组。数组中的元素代表一个独特的功能。

Tiles.h代码:

class tiles: public box
{
public:
void north2east(float trans_x, float trans_y);
void north2west(float trans_x, float trans_y);
void south2east(float trans_x, float trans_y);
void south2west(float trans_x, float trans_y);
};

Tiles.cpp代码:

void tiles::north2east(float trans_x, float trans_y); { }
void tiles::north2west(float trans_x, float trans_y); { }
void tiles::south2east(float trans_x, float trans_y); { }
void tiles::south2west(float trans_x, float trans_y); { }

我听说您可以通过在 Tiles.cpp 文件中添加以下内容来实现:

typedef void (*FUNC_ARRAY) (float trans_x, float trans_y);
FUNC_ARRAY functions[] = {
tiles::north2east,
tiles::north2west,
tiles::south2east,
tiles::south2west
}

但这给了我以下错误:

a value of type "void (tiles::*)(float trans_x, float trans_y)" cannot be used to initialize an entity of type "FUNC_ARRAY"

欢迎提供有关解决代码的提示和建议!

最佳答案

只需将您的 typedef 更改为:

typedef void (tiles::*FUNC_ARRAY) (float trans_x, float trans_y);
// ^^^^^^^

您当前的 typedef 只能用于常规函数和静态成员函数。您需要的是一个指向成员函数的指针。

关于c++ - C++ 中的函数指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29534414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com