[c++] 구조체와 클래스의 상속

C++에서는 상속이 구조체와 클래스 모두에 적용될 수 있습니다. 이를 통해 코드 재사용성을 높일 수 있고, 객체 지향 프로그래밍의 장점을 활용할 수 있습니다.

구조체(struct)의 상속

구조체도 클래스와 마찬가지로 상속을 받을 수 있습니다. 예를 들어, 다음과 같이 상속을 구현할 수 있습니다.

struct BaseStruct {
    int baseValue;
};

struct DerivedStruct : BaseStruct {
    int derivedValue;
};

위 예제에서 BaseStructDerivedStruct에 대한 기본 클래스 역할을 합니다. 이제 DerivedStructBaseStruct의 멤버와 멤버 함수를 사용할 수 있습니다.

클래스(class)의 상속

C++에서 클래스의 상속은 다음과 같이 구현됩니다.

class BaseClass {
public:
    int baseValue;

    void display() {
        cout << "BaseClass Display" << endl;
    }
};

class DerivedClass : public BaseClass {
public:
    int derivedValue;

    void display() {
        cout << "DerivedClass Display" << endl;
    }
};

DerivedClassBaseClass를 상속했으므로, BaseClass의 모든 멤버와 멤버 함수들을 사용할 수 있습니다. 또한, display 함수를 재정의하여 다형성을 구현할 수 있습니다.

접근 제어 지시자

상속 받은 멤버 변수나 함수에 접근할 때는 접근 제어 지시자 public, protected, private를 통해 접근 권한을 설정할 수 있습니다.

class BaseClass {
public:
    int publicValue;
protected:
    int protectedValue;
private:
    int privateValue;
};

class DerivedClass : public BaseClass {
    // DerivedClass 내부에서는 BaseClass의 public, protected 멤버에 접근 가능
};

다중 상속

C++은 다중 상속을 지원합니다. 즉, 하나의 파생 클래스가 두 개 이상의 기본 클래스로부터 상속받을 수 있습니다.

class BaseClass1 {
    // ...
};

class BaseClass2 {
    // ...
};

class DerivedClass : public BaseClass1, public BaseClass2 {
    // ...
};

결론

C++에서는 구조체와 클래스의 상속을 통해 객체 지향적인 프로그래밍을 지원합니다. 상속을 사용하면 코드의 재사용성을 높일 수 있고, 유연성 있는 프로그래밍을 할 수 있습니다. 상속을 사용함으로써 적절한 상속 체계를 구성하여 프로그램의 설계를 하는 것이 중요합니다.

이러한 내용을 바탕으로, 상속의 개념과 활용에 대한 심화적인 학습을 진행하여 다양한 상황에서 적절한 상속을 사용할 수 있도록 학습하는 것이 중요합니다.

Reference