【发布时间】:2021-06-03 18:29:42
【问题描述】:
我正在处理具有以下(简化)结构的作业。
class A
{
public:
virtual void method;
}
class B : public A
{
some variables;
public:
void method;
}
class C
{
public:
void method1(A *a);
}
我有一个 C 实例和 B 实例并尝试调用 c.method1(b),其中 b 是我的 B 类实例。但是,它需要一个 A*,并给我一个错误,说它无法转换B 到 A*。我以为我可以传递 B 的实例,因为它们是 A 的子类。我将如何解决这个问题,以便我能够将 B 传递给方法,因为我知道我无法更改方法参数作业的一部分?
【问题讨论】:
-
"以下(简化)结构" 请贴出真实代码。很难猜出什么是“simplified”与上面的明显错误。见How to create a Minimal, Reproducible Example。
标签: c++ class inheritance methods