gpt4 book ai didi

c++ - 在 Base 类中实现函数的最有效方法

转载 作者:可可西里 更新时间:2023-11-01 10:07:30 24 4
gpt4 key购买 nike

我有一个基类Base和两个派生类DerivedA、DerivedB

class Base
{
};

class DerivedA: public Base
{
CallbackTypeA callA; // call back function pointer of type CallbackTypeA.
};

class DerivedB : public Base
{
CallbackTypeB callB; // call back function pointer of type CallbackTypeB.
};

谁能告诉我在 Base 类中实现函数最有效的方法是什么?根据哪个对象调用它来检查 callA 或 callB 的特定条件?由于当前的一些限制,我不想使用虚函数

最佳答案

我可以想到 2 种可行的方法,但我仍然建议尽可能使用虚拟函数。

A.
在基类中有一个指向函数的指针,并在派生类的构造函数中将其设置为指向正确的函数。然后基类就可以调用它了。但这基本上就是在做虚函数机制所做的事情。

B.
在基类中有一个枚举,每个派生类都有一个值,每个派生类都会将这个枚举设置为它自己的值。在基类中,然后您可以检查此值并转换为正确的类并调用正确的函数。但这是非常非常糟糕的做法,因为基类需要了解派生类。

同样,我不知道是什么问题导致您不想使用虚函数。但我认为你应该重新考虑一下......

关于c++ - 在 Base 类中实现函数的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13267780/

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