我似乎无法使用基类作为函数参数,我是否搞砸了我的继承?
我的主要内容如下:
int some_ftn(Foo *f) { /* some code */ };
Bar b;
some_ftn(&b);
以及以这种方式从Foo继承的类Bar:
class Bar : Foo
{
public:
Bar();
//snip
private:
//snip
};
这应该不起作用吗?我似乎无法在我的主要功能中进行该调用
答案 0 :(得分:241)
你必须这样做:
class Bar : public Foo
{
// ...
}
C ++中class
的默认继承类型为private
,因此基类中的所有public
和protected
成员都限制为private
。另一方面,struct
继承默认为public
。
答案 1 :(得分:21)
默认情况下,继承是私有的。您必须明确使用public
:
class Bar : public Foo