Programming/C & C++

[C++] Inheritance: 'A' is an inaccessible base of 'B'

후유증 2019. 6. 12. 18:31

C++에서 접근제어 지정자를 잘못 지정해서 발생하는 현상이다.

아래와 같이 업캐스팅으로 부모 클래스의 자료형으로 자식 클래스의 포인터를 가리키려 할 때, 이와 같은 현상이 발생한다.

class A {
}
class B : A {
}

A* obj = new B();

이와 같은 문제는, 접근제어 지정자를 변경함으로서 해결 가능하다.

class A {
}
class B : public A {
}

A* obj = new B();