Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在需要父抽象类C++;?_C++_Class_Inheritance_Methods - Fatal编程技术网

C++ 在需要父抽象类C++;?

C++ 在需要父抽象类C++;?,c++,class,inheritance,methods,C++,Class,Inheritance,Methods,我正在做一项具有以下(简化)结构的作业 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的实

我正在做一项具有以下(简化)结构的作业

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传入方法?

您不能将A
B
转换为A
A*
,但是您可以将
B*
转换为
a*
。我想你只是忘记了这个
&
操作员:

main()
{
    B b;
    C c;
    c.method1(&b);
}

“以下(简化)结构”请张贴真实代码。很难猜测什么是“简化”的,什么是明显错误的。看,啊,那很有效,非常感谢。之后出现了一些其他错误,但由于这些错误能够正常工作,因此这些错误得以解决