2011-01-31 56 views
103

我似乎无法使用基类作为函数参数,我搞砸了我的继承?C++继承 - 无法访问的基础?

我已经在我的主要如下:

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

和类酒吧以这样的方式从富继承:

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

private: 
    //snip 
}; 

如果不能解决问题?我似乎不能够作出这样的电话在我的主要功能

回答

199

你必须这样做:

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

在C class ++的默认继承类型为private,所以任何publicprotected来自基础类的成员仅限于private。另一方面,struct继承默认为public

19

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

class Bar : public Foo

+9

要展开:在`class`,继承`private`。在`struct`中,默认情况下继承是`public`。 – 2011-01-31 02:26:49