본문 바로가기

System Programmings/C++

[C++] 가상 함수

반응형


virtual 키워드 삭제시, 유지시의 출력값 차이 확인

#include <iostream>
using namespace std;

class Parent {
public:
	virtual void func() { cout << "부모 클래스의 func 함수 호출!" << endl; }
};

class Child : public Parent {
public:
	virtual void func() { cout << "자식 클래스의 func 함수 호출!" << endl; }
};


int main()
{
	Parent *pParent = new Parent();
	Child *pChild = new Child();

	pParent->func();
	pChild->func();

	pParent = pChild;
	pParent->func();

	return 0;
} 



virtual 존재시 출력값


부모 클래스의 func 함수 호출!

자식 클래스의 func 함수 호출!

자식 클래스의 func 함수 호출! 



virtual 미존재시 출력값


부모 클래스의 func 함수 호출!

자식 클래스의 func 함수 호출!

부모 클래스의 func 함수 호출!


반응형