関数パラメーターとして基本クラスを使用できないようですが、継承を台無しにしましたか?
私のメインには次のものがあります:
int some_ftn(Foo *f) { /* some code */ };
Bar b;
some_ftn(&b);
そして、このような方法でFooを継承するクラスBar:
class Bar : Foo
{
public:
Bar();
//snip
private:
//snip
};
これは機能しませんか?私はメイン関数でその呼び出しを行うことができないようです
あなたはこれをしなければなりません:
class Bar : public Foo
{
// ...
}
C++のclass
のデフォルトの継承タイプはprivate
であるため、基本クラスのpublic
およびprotected
メンバーはprivate
に制限されます。一方、struct
継承は、デフォルトでpublic
です。
デフォルトでは、継承はプライベートです。 public
を明示的に使用する必要があります。
class Bar : public Foo