Nagie's DevStory

[CPP] 30. 가상 함수 (Virtual Function) 본문

Programming/C++

[CPP] 30. 가상 함수 (Virtual Function)

Nagie 2023. 10. 22. 17:21
728x90

가상 함수(virtual function)는 C++의 객체 지향 프로그래밍에서

다형성(polymorphism)을 구현하는 데 사용되는 중요한 개념이다.

사용하는 방법은 어렵지 않다. 클래스 내에서 선언 할 때 'virtual' 키워드를 사용해 선언해 주면 된다.

아래는 가상 함수를 선언하는 예시다.

 

class Base {
public:
    virtual void myFunction() {
        // 가상 함수의 기본 구현
    }
};

 

'virtual' 키워드를 사용해 함수를 구현하게 되면 파생 클래스에서 재정의가 가능하게 되는데

이땐 'override' 키워드를 사용해야 한다.

 

class Derived : public Base {
public:
    void myFunction() override {
    
        // 가상 함수의 파생 클래스에서의 구현
    }
};

 

 

이렇게 가상함수를 사용하면 런타임중 객체 유형에 따라 알맞은 함수가 호출되므로 다형성을 만족할 수 있게 된다.

또한 클래스 계층 구조에서 확장성과 유지 보수성이 향상되니 잘 알고 있어야 한다.

 

728x90
Comments