在 C++ 中执行子对象方法数组

问题描述 投票:0回答:1

假设我有一个基类A和两个派生类B和C。我想创建一个由B和C的虚拟成员组成的函数指针数组并执行它们。

我该怎么做?

我真的很想更进一步,甚至不让对象共享父类,但我认为这更容易。

c++ inheritance polymorphism
1个回答
0
投票

如果你有

class A { virtual void f() = 0; };

并且从A派生出类B和C,那么你就可以做

using memfuncptr = void(A::*)();
memfuncptr memfuncs[] {&B::f};
A a;
a.*(memfuncs[0]);

这确实要求所有所需的成员函数都是 A 的成员。

© www.soinside.com 2019 - 2024. All rights reserved.