gpt4 book ai didi

指向成员函数的 C++ 调用指针

转载 作者:IT老高 更新时间:2023-10-28 13:02:52 25 4
gpt4 key购买 nike

我有一个指向成员函数的指针列表,但我很难尝试调用这些函数...正确的语法是什么?

typedef void (Box::*HitTest) (int x, int y, int w, int h);

for (std::list<HitTest>::const_iterator i = hitTestList.begin(); i != hitTestList.end(); ++i)
{
HitTest h = *i;
(*h)(xPos, yPos, width, height);
}

我也在尝试在这里添加成员函数

std::list<HitTest> list;

for (std::list<Box*>::const_iterator i = boxList.begin(); i != boxList.end(); ++i)
{
Box * box = *i;
list.push_back(&box->HitTest);
}

最佳答案

指向非静态成员函数的指针是具有独特调用语法的独特野兽。

调用这些函数不仅需要提供命名参数,还需要提供 this 指针,因此您必须准备好将用作 Box 指针>这个

(box->*h)(xPos, yPos, width, height);

关于指向成员函数的 C++ 调用指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814158/

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