C++ 순수 가상 함수
기반 클래스가 가상 함수를 만드는 이유는 혹시라도 재정의하고 포인터로 호출할 때를 대비한 것이다. 즉, 가상 함수는 재정의해도 되는 함수이지 반드시 재정의해야 하는 함수는 아니다. 이에 비해 순수 가상 함수(Pure Virtual Function)는 파생 클래스에서 반드시 재정의해야 하는 함수이다. 이 함수는 일반적으로 함수의 동작을 정의하는 본체를 가지고 있지 않으며 따라서 이 상태에서는 호출할 수 없다. 본체가 없다는 뜻으로 함수 선언부의 끝에 "=0"를 표기를 하는데 이는 함수만 있고 코드는 비어 있다는 뜻이다. #include class Shape { public: virtual void draw()=0; // 순수 가상 함수 virtual ~Shape(){} }; class Rect : publ..
C++/C++98
2023. 8. 7. 18:02