C++에서는 상속이 구조체와 클래스 모두에 적용될 수 있습니다. 이를 통해 코드 재사용성을 높일 수 있고, 객체 지향 프로그래밍의 장점을 활용할 수 있습니다.
구조체(struct)의 상속
구조체도 클래스와 마찬가지로 상속을 받을 수 있습니다. 예를 들어, 다음과 같이 상속을 구현할 수 있습니다.
struct BaseStruct {
int baseValue;
};
struct DerivedStruct : BaseStruct {
int derivedValue;
};
위 예제에서 BaseStruct
는 DerivedStruct
에 대한 기본 클래스 역할을 합니다. 이제 DerivedStruct
는 BaseStruct
의 멤버와 멤버 함수를 사용할 수 있습니다.
클래스(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;
}
};
DerivedClass
가 BaseClass
를 상속했으므로, 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++에서는 구조체와 클래스의 상속을 통해 객체 지향적인 프로그래밍을 지원합니다. 상속을 사용하면 코드의 재사용성을 높일 수 있고, 유연성 있는 프로그래밍을 할 수 있습니다. 상속을 사용함으로써 적절한 상속 체계를 구성하여 프로그램의 설계를 하는 것이 중요합니다.
이러한 내용을 바탕으로, 상속의 개념과 활용에 대한 심화적인 학습을 진행하여 다양한 상황에서 적절한 상속을 사용할 수 있도록 학습하는 것이 중요합니다.