我似乎无法将基类用作函数参数,我是否搞砸了我的继承?
我的主要内容如下:
int some_ftn(Foo *f) { /* some code */ };
Bar b;
some_ftn(&b);
并且类 Bar 以这种方式从 Foo 继承:
class Bar : Foo
{
public:
Bar();
//snip
private:
//snip
};
这不应该工作吗?我似乎无法在我的主要功能中进行该调用
你必须这样做:
class Bar : public Foo
{
// ...
}
C++ 中 class
的默认继承类型是 private
,因此基类中的任何 public
和 protected
成员都被限制为 private
。另一方面,struct
继承默认为 public
。
默认情况下,继承是私有的。您必须明确使用 public
:
class Bar : public Foo
class
中,继承是 private
。在 struct
中,继承默认为 public
。
class Bar : virtual Foo
代码,我找不到任何关于virtual
继承模式的文档和详细信息,有人知道吗?