📝 다중 상속의 문제


📝 가상 함수와 오버라이딩
- 가상 함수
- Virtual로 선언
- 함수에 대한 호출 바인딩을 실행 시간에 결정(동적 바인딩)
- 오버라이딩
- 파생 클래스에서 기본 클래스의 함수와 동일한 이름의 함수 선언
- 기본 클래스의 동작을 재정의
- 다형성을 위한 기능
- 가상함수에 대한 오버라이딩을 할 경우 동적 바인딩 가능
#include <iostream>
#include <string>
using namespace std;
class Base {
public:
virtual void f() { cout << "Base::f() called" << endl; }
};
class Derived : public Base {
public:
virtual void f() { cout << "Derived::f() called" << endl; }
};
int main() {
Derived d, * pDer;
pDer = &d;
pDer->f();
Base* pBase;
pBase = pDer;
pBase->f();
}