0

我想知道在 C++ 中创建一个具有多个纯虚方法的抽象类好不好?

例如,在某些情况下,例如实现会话启动协议的对话,我们发现它可以使用桥接模式来实现。但是为通用操作拥有抽象基类会导致拥有一个非常大的抽象类。现在从性能的角度来看,使用和实现此类的效果是什么?

考虑我们有不同的对话框,每个对话框都有自己的实现。(例如:InviteDialog、RegisterDialog、InfoDialog、...)

应用桥模式:

class IIDialog{
public:
/*there are multiple pure virtual methodes at least 15*/
virtual int32_t SendResponse(ISipMessage* response) = 0;
protected:
/*there are multiple methods that use pure virtual methods*/
int32_t Send_Response(){retun SendResponse(response);}
}

class IInviteDialog : public IIDialog
{
/*Implemet virtual methods*/
}

class IRegisterationDialog : public IIDialog
{
/*implement virtual methode*/
}

实现的其他部分被忽略(上述类使用的实际实现和实现抽象)

谢谢

4

2 回答 2

1

对于大多数现代 C++ 编译器,您可以假设构造对象时的性能开销不取决于虚拟方法的数量。

当实际调用这些方法时,我希望开销不会大于任何替代实现方法的开销。

如果这些函数调用执行诸如网络操作之类的“复杂”事情,那么无论如何您都不需要担心这种微优化,这将完全无关紧要。

于 2012-09-23T14:12:49.740 回答
0

从性能的角度来看,虚拟方法的数量在 C++ 中并不重要(无论方法的数量如何,都需要为间接支付一个小的固定价格)。

于 2012-09-23T14:12:29.403 回答