• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

부모 클래스의 멤버변수가 상속될 때 초기화

23.12.06 14:37 작성 23.12.06 14:42 수정 조회수 109

1

class Child :public Mother
{
private:
    double m_d;
public:
    Child()
        :m_d(1.0), m_i(10)
    {
        cout << "child constructor" << endl;
    }

};

위 코드에서 오류가 나는 이유가 Child객체를 실행할 때 m_d와 m_i에 메모리를 주는 과정에서 child객체가 m_i가 무엇인지 인식을 하지 못하기 때문에 에러가 난다고 이해했는데 맞게 생각한걸까요?

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2023.12.07

안녕하세요, 답변 도우미 Soobak 입니다.

 

강의에서의 코드 중 m_i 멤버 변수를 부모 클래스에서 private 접근 지정자로 선언하셨을 경우, Mother 클래스의 파생 클래스인 Child 클래스에서 m_i 에 접근할 수 없습니다.

C++ 에서 어떠한 클래스의 private 접근 지정자로 선언된 멤버는 해당 클래스의 파생 클래스라고 하더라도 접근할 수 없습니다.