gpt4 book ai didi

c++ - C++ 成员函数表

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:11:35 25 4
gpt4 key购买 nike

我需要一个将代码映射到 C++ 成员函数的表。假设我们有这个类:

class foo
{
bool one() const;
bool two() const;
bool call(char*) const;
};

我想要的是这样一张表:

{
{ “somestring”, one },
{ ”otherstring”, two }
};

因此,如果我有一个 foo 对象 ff.call("somestring") 会在table,调用one()成员函数,返回结果。

所有被调用的函数都具有相同的原型(prototype),即它们是 const,不带参数,并返回 bool。

这可能吗?怎么办?

最佳答案

是的,使用指向成员的指针语法是可能的。

使用您提供的原型(prototype), map 将是。

std::map< std::string, bool( foo::*)() const>

它会用这种语法调用

this->*my_map["somestring"]();

那个看起来很奇怪的 ->* 运算符用于指向成员函数的指针,由于继承,它可能有一些奇怪的考虑。 (这不仅仅是一个原始地址,正如 -> 所期望的那样)

关于c++ - C++ 成员函数表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9022311/

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