Virtual

[Basic C++] #20_virtual 키워드, vtable 오버헤드 C++ 개발에서 오버라이딩을 사용 시 주의할 점에 대해서 알아보겠습니다. "전문가를 위한 C"의 9 항목, "클래스 상속 활용 테크닉"에 해당하는 내용입니다. virtual 키워드 사용 이유 Java 언어는 모든 메소드를 무조건 virtual로 취급합니다. 이처럼, C++에서도 모든 메소드를 virtual로 취급하면 더 편리하지 않을까 생각합니다. 그럼에도 불구하고, "virtual" 키워드의 강조는 "vtable" 이용에 따른 오버헤드때문입니다. "virtual" 메서드, 즉 가상 멤버 함수 호출을 위해 "vtable"이 담고 있는 포인터를 역 참조하여 실행할 메서드의 위치를 찾아오는 부가적인 작업이 필요합니다. 물론, 날로 발전..
[Basic C++] #18_오버라이딩의 특수한 경우 여섯 번째, 일반 메소드의 오버라이딩 C++ 개발에서 오버라이딩을 사용 시 주의할 점에 대해서 알아보겠습니다. "전문가를 위한 C"의 9 항목, "클래스 상속 활용 테크닉"에 해당하는 내용입니다. "virtual"을 사용하지 않을 경우 class Super { public: void go() {cout
[Basic C++] #7_클래스 상속 활용 방법 C++ 개발에서 상속을 통해 클래스를 생성하는 방법에 대해서 알아보겠습니다. "전문가를 위한 C"의 9 항목, "클래스 상속 활용 테크닉"에 해당하는 내용입니다. 상속 // Parent Class 정의 class Super { public: Super(); ~Super(); void SomeMethod_1(); protected: int mProtectedInt; private: int mPrivateInt; }; // Child Class 정의 class Sub : public Super { public: Sub(); void SomeMethod_2(); }; 서브 클래스, 혹은 자식 클래스는 부모 클래스와 "is-a" 관계를 형성합니다. "is-a" ..
Hardii2
'Virtual' 태그의 글 목록