Priv's Blog

상속의 타입 본문

Dev. Study Note/C++

상속의 타입

Priv 2024. 2. 13. 13:11


 

 

1. C++의 상속

C++는 OOP 언어의 핵심 중 하나인 '상속' 기능을 지원합니다.

C++은 다중 상속을 지원하며, 상속 시 접근 제한자를 이용해 여러 타입의 상속을 구현하는 것도 가능합니다.

class Mother {
public:
    Mother() {
    };

    void sayHi() {
        cout << "Hi" << endl;
    }

    void sayName(string name) {
        cout << "I'm a " << name << "." << endl;
    }
};


class Daughter : public Mother {
public:
    Daughter() {
    };
};

가장 기본적인 형태는 위와 같이 public 접근 제한자를 이용하는 방식으로, Daughter 클래스는 Mother 클래스의 sayHi( ) 메서드, sayName( ) 메서드를 사용할 수 있습니다.

 


 

2. 상속 타입

C++에서 상속 기능을 사용할 때 적용 가능한 접근 제한자는 public, private, protected입니다.

- public

is-a 관계를 구현할 수 있습니다.

부모 클래스의 public 멤버는 자식 클래스에서도 접근 가능합니다.

부모 클래스에서 protected 접근 제한자로 선언된 멤버도 자식 클래스에서 접근이 가능합니다.

단, 부모 클래스의 private 멤버는 자식 클래스에서 접근할 수 없습니다.

- private

부모 클래스의 public, protected 멤버가 자식 클래스에서는 private 멤버로 취급됩니다.

- protected

부모 클래스의 public, protected 멤버가 자식 클래스에서는 protected 멤버로 취급됩니다.

이 중에서 가장 일반적인 형태가 public입니다.

C++는 다중 상속을 지원하기 때문에 다른 접근 제한자를 사용해 상속 타입을 제한하면 '다이아몬드 문제'를 비롯해 예상치 못한 오류가 발생할 수 있어 주의해야 합니다. 

 


 


수고하셨습니다!


'Dev. Study Note > C++' 카테고리의 다른 글

포인터와 배열, 포인터 산술  (0) 2024.05.18
포인터 기초 개념과 new 키워드  (0) 2024.05.13
2D Array Row, Column  (0) 2024.01.23
friend 키워드  (0) 2024.01.10
클래스  (0) 2023.12.27
Comments