C++에서 상속은 기존 클래스의 기능을 이어받아 새로운 클래스를 만드는 중요한 개념입니다. 마치 부모로부터 자식이 유전적인 특징을 물려받는 것처럼, 상속을 통해 기존 코드를 재사용하여 효율적인 개발이 가능합니다. 상속은 코드 재사용성을 높이고 유지보수를 용이하게 하여 프로그램을 더 간결하고 관리하기 쉽게 만듭니다.
자식 클래스는 부모 클래스에서 물려받은 멤버를 활용할 뿐만 아니라 새로운 멤버를 추가하거나 부모의 메소드를 재정의(오버라이딩) 할 수 있습니다.
class 부모클래스 {
// 부모 클래스의 멤버 변수 및 메소드
};
class 자식클래스 : 접근지정자 부모클래스 {
// 자식 클래스의 멤버 변수 및 메소드
};
접근 지정자는 부모 클래스의 멤버가 자식 클래스에서 어떻게 상속될지를 결정합니다.
public 멤버는 자식의 public으로, protected 멤버는 자식의 protected로 상속됩니다.public과 protected 멤버가 자식의 protected로 상속됩니다.private으로 상속됩니다.class Animal {
public:
void speak() {
std::cout << "동물들은 울음소리가 있습니다." << std::endl;
}
};
class Dog : public Animal {
public:
void bark() {
std::cout << "멍멍" << std::endl;
}
};
class Cat : public Animal {
public:
void bark() {
std::cout << "냐옹" << std::endl;
}
};
Dog myDog;
myDog.speak(); // 출력: 동물들은 울음소리가 있습니다.
myDog.bark(); // 출력: 멍멍
Cat myCat;
myCat.speak(); // 출력: 동물들은 울음소리가 있습니다.
myCat.bark(); // 출력: 냐옹
부모 클래스의 멤버가 자식 클래스에서 어떻게 보이는지는 접근 제어 지정자에 따라 다릅니다.