C++ 프로그래밍에서 클래스 상속은 객체 지향 프로그래밍의 중요한 개념 중 하나입니다. 이를 통해 이미 정의된 클래스의 특성과 기능을 다른 클래스에서 활용할 수 있으며, 코드의 재사용성과 유지보수성을 향상시킬 수 있습니다.
조건
클래스 상속을 구현하려면 다음과 같은 조건을 충족해야 합니다.
-
기본 클래스와 파생 클래스의 정의: 클래스 상속은 먼저 기본 클래스와 파생 클래스를 정의하는 과정부터 시작됩니다. 기본 클래스는 상속의 기반이 되며, 공통된 속성과 메서드를 포함합니다. 파생 클래스는 기본 클래스를 확장하거나 변형하여 새로운 기능을 추가할 수 있습니다.
-
접근 지정자 활용: C++에서는 public, protected, private 세 가지 접근 지정자를 사용하여 상속 관계의 접근 권한을 결정합니다. public 접근 지정자를 사용하면 기본 클래스의 공개 멤버가 파생 클래스에서도 접근 가능합니다. protected는 기본 클래스의 멤버를 파생 클래스에서는 접근 가능하지만, 외부에서는 접근할 수 없게 합니다. private를 사용하면 모든 멤버가 파생 클래스에서 접근할 수 없습니다.
예시
#include <iostream>
// 기본 클래스 정의
class Animal {
public:
void speak() {
std::cout << "동물이 소리를 내고 있습니다." << std::endl;
}
};
// 파생 클래스 정의
class Dog : public Animal {
public:
void bark() {
std::cout << "강아지가 짖고 있습니다." << std::endl;
}
};
int main() {
Dog myDog;
myDog.speak(); // 기본 클래스의 메서드 사용 가능
myDog.bark(); // 파생 클래스의 메서드 사용 가능
return 0;
}
위 예시에서 Animal 클래스는 기본 클래스로서 speak() 메서드를 가지고 있습니다. Dog 클래스는 Animal 클래스를 기반으로 하며, bark() 메서드를 추가로 가지고 있습니다. 이때, Dog 클래스는 public 접근 지정자를 사용하여 Animal 클래스의 메서드와 멤버에 접근할 수 있습니다.
'IT > c++' 카테고리의 다른 글
C++ 오버라이딩(overriding) (0) | 2023.08.05 |
---|---|
C++ is-a 및 has-a 상속 조건 (0) | 2023.08.05 |
C++ Mutable 키워드: 객체 내 값의 가변성을 관리하는 유용한 도구 (0) | 2023.08.04 |
C++ const 객체 및 키워드 (0) | 2023.08.04 |
C++ Static: 정적 멤버 변수와 정적 멤버 함수 (0) | 2023.08.03 |
댓글