C ++ 상속-접근하기 어려운베이스? 기본 클래스를 함수 매개

기본 클래스를 함수 매개 변수로 사용할 수없는 것 같습니다. 상속을 엉망으로 만들었습니까?

나는 내 주에 다음이 있습니다.

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

그리고 클래스 Bar는 다음과 같은 방식으로 Foo에서 상속됩니다.

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

private:
    //snip
};

이것이 작동하지 않습니까? 내 주요 기능에서 그 전화를 걸 수없는 것 같습니다



답변

이 작업을 수행해야합니다.

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

a의 기본 상속 형 classC ++에서는 private어떤 있도록 public하고 protected기본 클래스의 멤버가 제한됩니다 private. struct반면에 상속은 public기본적으로입니다.


답변

기본적으로 상속은 비공개입니다. 명시 적으로 사용해야합니다 public.

class Bar : public Foo


답변