C ++ 상속-접근하기 어려운베이스?


157

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

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

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

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

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

private:
    //snip
};

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

답변:


287

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

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

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


28

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

class Bar : public Foo


14
확장하려면 : class에서 상속은 private입니다. 의 struct상속은 public기본적으로입니다.
Travis Gockel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.