1. ホーム
  2. c++

[解決済み] C++の継承 - アクセス不能なベース?

2022-02-13 01:55:36

質問

ベースクラスを関数のパラメータとして使用することができないようですが、継承を失敗したのでしょうか?

私のメインに以下のようなものがあります。

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
{
    // ...
}

のデフォルトの継承型は class は、C++では private であるため、任意の publicprotected ベースクラスからのメンバは private . struct 一方、継承は public をデフォルトで使用します。