C ++inheritance – 无法访问的基础?

我似乎无法使用基类作为函数参数,我弄乱了我的inheritance

我的主要内容如下:

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

从Fooinheritance的类Bar是这样的:

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

如果这不起作用? 我似乎无法在我的主要function中打这个电话

2 Solutions collect form web for “C ++inheritance – 无法访问的基础?”

你必须这样做:

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

C ++中class的默认inheritancetypes是private ,所以来自基类的publicprotected成员都被限制为private 。 另一方面, structinheritance是默认public的。

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

class Bar : public Foo

  • 为什么我应该使用“使用”关键字来访问我的基类方法?
  • 将List <DerivedClass>转换为List <BaseClass>
  • 如何在C ++中使用基类的构造函数和赋值运算符?
  • 哪些类不能被分类?
  • 指针值是不同的,但他们比较相等。 为什么?
  • 我应该如何解释一个接口和一个抽象类的区别?
  • PHP中的多重inheritance
  • 如何在关系数据库中进行inheritancebuild模?
  • C ++静态多态(CRTP)并使用派生类的typedef
  • 什么时候应该在deviseC#类库时通过接口selectinheritance?
  • Javascript类inheritance的function