C++ virtual

    [C++] 가상 소멸자

    [C++] 가상 소멸자

    1. 가상 소멸자 #include using namespace std; class Base { public: Base() { cout

    [C++] 가상 함수 문법 정리

    [C++] 가상 함수 문법 정리

    1. 가상 함수 관련 문법 정리 class Shape { pbulic: virtual void Draw() {} }; class Rect : public Shape { public: virtual void Draw() {} // ok // void Draw() {} // ok }; int main() { } ① 파생 클래스에서 가상 함수 재정의 (override) 할 때 => virtual 키워드는 붙여도 되고 붙이지 않아도 된다. => 되도록이면 붙이는 것이 가독성이 좋다. class Base { public: virtual void f1() {} virtual void f2(int) {} virtual void f3() const {} }; class Derived : public Base { pub..

    [C++] 가상 함수 (virtual function)

    [C++] 가상 함수 (virtual function)

    1. 함수 오버 라이드 (function override) #include class Shape { public: void Draw() { std::cout C++, C# 등의 언어는 기반 클래스 함수 호출 => java, swift 등의 언어는 파생 클래스 함수 호출 2. 함수 바인딩 (binding) #include class Shape { public: void Draw() { std::cout 방법2. 실행 할 때 결정하는 방법 - dynamic binding 위의 코드를 봐선 p가 Shape를 가리키는걸 알 수 있다. 그럼 아래 코드를 보자. #include class Shape { public: void Draw() { std::cout 컴파일러는 컴파일 시간에 실제로 p가 어느 객체를 가리키..