【发布时间】:2011-07-12 03:58:09
【问题描述】:
在实现它的类中定义具有与接口方法完全相同签名的静态方法有什么好处。
class IInterface
{
public:
virtual void fn()=0;
}
class Impl :IInterface
{
public:
~Impl();
static void fn();
}
Impl::~Impl{
}
Impl::fn(){
//do something
}
【问题讨论】:
-
你在哪里见过这个?在您的示例中,
Impl仍然是一个抽象类,因为它永远不会覆盖IInterface::fn。 -
在 3rd 方库中查看此内容。基本上'Impl'是一个包装器。 Impl::fn 的静态实现准确地调用了库方法 ex: Impl::fn() { :: fn() } 。我猜,这个接口是支持 Mock 测试的。如果那么它将如何有用?
标签: c++ static-methods virtual-functions