개념
새로운 클래스는 기존 클래스의 속성과 메서드를 물려받을 수 있으며, 이를 통해 새로운 클래스는 기존 클래스의 기능을 확장하거나 수정할 수 있다.
코드
예시
class Base { // 피상속 클래스, 부모클래스
public:
int base_var;
void base_function() {
// base class function
}
};
class Derived : public Base { // 상속클래스, 자식클래스
public:
int derived_var;
void derived_function() {
// derived class function
}
};
클래스 상속
Derived 클래스가 Base 클래스를 상속한다.
class Derived : public Base {};
클래스와 레프런스 참조
Derived와 같이 피상속 클래스가 Base와 같은 상속 클래스의 변수에 접근을 사용해야한다면 편의를 위해 레프런스 참조를 할 수 있다.
`Base` 클래스(피상속 클래스)
class Base {
protected:
int myNumber;
}
`Derived` 클래스(상속 클래스)
class Derived : public Base{ // 클래스 상속
pubic:
Derived(): Base(){} // 생성자 상속
typedef Base alias; // 피상속 클래스 이름 대신에 다른 이름으로 대체 가능
int &referring_my_number = alias::myNumber; // 피상속클래스의 멤버변수를 레프런스 참조
}