C++继承Base类使用派生类的成员

Cod*_*lus 0 c++ inheritance class

是否有可能有一个基类具有派生类的实例作为基类函数之一的参数?例如:

class A
{
  virtual void foo(B b[]);
};
Class B: public A
{
  void foo(B b[]);
};
Run Code Online (Sandbox Code Playgroud)

这合法吗?A类还需要包含B类的头文件,这也有问题吗?

Luc*_*ore 7

通过前瞻声明可以:

class B;
class A
{
  virtual void foo(B b[]);
};
Class B: public A
{
  void foo(B b[]);
};
Run Code Online (Sandbox Code Playgroud)

但这是一个主要的代码味道.请说明你想要实现的目标,这看起来像是一个错误的设计.