嗯,我正在阅读一些指南,但是我无法弄清楚如何在C++中正确使用函数指针?
我有一个类,我希望在它完成当前操作后调用一个函数,像这样:
class WindowImages
{
public:
void Update()
{
for(unsigned int i = 0; i < _images.size(); i++)
{
//Do something
_images[i]->MyFunctionPointer();
}
}
void Add(Image* image, void (*func)(void))
{
image->function = func; //this is wrong
_images.push_back(image);
}
private:
vector<Image*> _images;
}
class Image
{
public:
void ImageClicked();
void *function(void);
};
void main()
{
Image* image = new Image();
WindowImages images;
images.Add(image, image->ImageClicked);
}
我想把图像添加到向量中,然后传递一个函数作为参数,当图像类完成对每个图像的操作时,将调用该函数。 这些函数针对不同的图像,但它们都是以void function()格式编写的。
我尝试了很多方法,但一直没有结果,你能告诉我如何实现吗? 另外,如果你有一份更适合初学者的函数指针教程或指南(甚至是C++ 11 Lambda),那将非常有帮助!
std::function
而不是函数指针。 - Baum mit Augenvoid (*function)(void);
,但 成员函数指针 是不同的概念。 - jrok