private멤버는 상속을 않받나요?

class A {
private:
    int Num;
public:
    void print() { cout << Num << endl; }
    void Set(int _Num) { Num = _Num; } 
};

class B : public A {
public:
};

int main() {

    B test;
   // test.Num; 
    test.Set(10);
    test.Print();

    return 0;
}

제가 클래스 상속에서 자식 클래스는 부모클래스의 private멤버를 상속받지 못한다고 배웠습니다

그리고 public과 pritected만 상속받을수 있습니다

그런데 Print함수의 경우는 public이니까 당연히 상속받을수 있는데 이 Print함수가 A클래스의 private멤버를 사용하는데 B타입 객체인 test로도 문제없이 실행되고 Set함수도 문제없이 실행이 됩니다

그래서 의문이 든건데 private멤버도 자식이 상속을 받기는 하는데 그냥 접근만 못하는 건지 아니면
Print처럼 내부적으로 private멤버가 사용되면 특별히 그때만 잠시 접근할수 있게 해주는건지 모르겠습니다

그리고 확인해 보니까 &A::Print와 &B::Print가 같은 값이 나오네요…

뭐가 뭔지 전혀 모르겠습니다 죄송합니다…

protected


사용만 못할 뿐, 상속받습니다.

감사합니다 그런데 이렇게 인터넷에 않나오는 정보들은 어디서 어떻게 공부하는 건가요?

딱히 버전에 따라 달라지는 내용도 아니니, 어지간한 책이나 인터넷 자료면 있을것 같습니다.

그렇군요 감사합니다