C + + 继承-无法访问的基?

我似乎无法使用基类作为函数参数,我是否搞砸了继承?

我的主要观点如下:

int some_ftn(Foo *f) { /* some code */ };
Bar b;
some_ftn(&b);

从 Foo 继承的 Bar 类是这样的:

class Bar : Foo
{
public:
Bar();
//snip


private:
//snip
};

这个不能用吗? 我好像不能在我的主函数中打这个电话

117649 次浏览

你必须这么做:

class Bar : public Foo
{
// ...
}

C + + 中 class的默认继承类型是 private,因此基类中的任何 publicprotected成员都仅限于 private。另一方面,struct继承在默认情况下是 public

默认情况下,继承是私有的。您必须显式地使用 public:

class Bar : public Foo