gpt4 book ai didi

c++ - 通过指向基类函数的指针调用派生类函数

转载 作者:行者123 更新时间:2023-11-28 00:55:29 27 4
gpt4 key购买 nike

我想使用它的接口(interface)在子类上调用一些方法,但我想使用指向接口(interface)方法的指针。

像这样:

#include <iostream>

using namespace std;


class IA
{
public:
virtual void f() = 0;
};

class A : public IA
{
public:

virtual void f()
{
cout<<"A::f()"<<endl;
}
};

int main()
{
typedef void (IA::*Func)();

Func func;
func = &IA::f;

IA *a = new A();

a.*(func);

delete a;

return 0;
}

你知道怎么解决吗?

最佳答案

调用应该是:

(a->*func)()

(这将成员函数指针绑定(bind)到 a,然后调用成员函数。)

否则,您的代码是正确的。

关于c++ - 通过指向基类函数的指针调用派生类函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11639788/

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