C ++继承 - 难以访问的基础?

时间:2011-01-31 02:19:35

标签: c++ inheritance

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

我的主要内容如下:

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

以及以这种方式从Foo继承的类Bar:

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

private:
    //snip
};

这应该不起作用吗?我似乎无法在我的主要功能中进行该调用

2 个答案:

答案 0 :(得分:241)

你必须这样做:

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

C ++中class的默认继承类型为private,因此基类中的所有publicprotected成员都限制为private。另一方面,struct继承默认为public

答案 1 :(得分:21)

默认情况下,继承是私有的。您必须明确使用public

class Bar : public Foo