【发布时间】:2017-12-11 22:04:24
【问题描述】:
鉴于下面的类结构,我想从struct B 中的方法调用struct C<O> 中的方法。 C<O> 遵循奇怪重复的模板模式。我想这样做而不在struct O 中放置方法。在struct O 中放置方法会破坏struct C<> 的目的。我怀疑这是不可能的,但我想我会问。
编辑:struct O 可以是具有struct B 和struct C<O> 作为基类的一组类型中的任何一个。
struct B
{
virtual void foo ()
{
// dynamic_cast this to C<O>* and call C<O>::moo()
}
};
template <typename P>
struct C
{
virtual void moo () { }
};
struct O :
public B,
public C<O>
{
};
【问题讨论】:
-
那么这个演员表的确切问题是什么?它与放置方法有什么关系?你试过写吗?
-
o实际上是未知的。抱歉,这很关键。 -
你没有结构 B 的模板
-
@JakeFreeman,不,我不能。我不拥有那个班级。
-
你为什么不直接覆盖 o 中的
foo()方法?
标签: c++ multiple-inheritance dynamic-cast