본문 바로가기

컴퓨터 과학 & 영상처리 관련/C / C++

상속에 대한 또 하나의 예제

virtual 안하면 포인터의 함수 a가 실행됨. 버철하면 실객체 비가 실행됨
class A
{
     void func()
     {
     }
}

class B : public A
{
     void func() //함수 재정의
}

 

A* a = new B();
이렇게 하고 a->func(); 하면 머가 실행되느냐? virtual 안하면 A의 포인터이므로 a->func()가 실행됨
만약 A클래스에서 virtual void func()로 함수를 정의했다면
실행시 실객체 B의 함수인 func()가 실행됨