이 튜토리얼에서는 C++의 가상 함수를 이해하는 프로그램에 대해 논의할 것입니다.
가상 함수는 기본 클래스에서 정의된 멤버 함수이며 자식 클래스에서도 추가로 정의할 수 있습니다. 파생 클래스를 호출하는 동안 덮어쓴 함수가 호출됩니다.
예시
#include <iostream>
using namespace std;
class base {
public:
virtual void print(){
cout << "print base class" << endl;
}
void show(){
cout << "show base class" << endl;
}
};
class derived : public base {
public:
void print(){
cout << "print derived class" << endl;
}
void show(){
cout << "show derived class" << endl;
}
};
int main(){
base* bptr;
derived d;
bptr = &d;
//calling virtual function
bptr->print();
//calling non-virtual function
bptr->show();
} 출력
print derived class show base class