[C++] 상속

개념

새로운 클래스는 기존 클래스의 속성과 메서드를 물려받을 수 있으며, 이를 통해 새로운 클래스는 기존 클래스의 기능을 확장하거나 수정할 수 있다.

코드

예시

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; // 피상속클래스의 멤버변수를 레프런스 참조
}