2024/04/19 2

C++에서 가상 함수(Virtual function)은 private이 가능할까?

가상 함수는 C++에 액세스 제어 기능이 있으므로 private 함수일 수는 있지만 가시성 제어 기능은 없다. 앞선 글에서 말한 바와 같이, 가상 함수는 파생 클래스에 의해 재정의될 수 있지만 모든 상황에서는 기본 클래스 내에서만 호출된다. 예시: // C++ program to demonstrate how a // virtual function can be private #include class base { public: // default base constructor base() { std::cout

C++ 2024.04.19

C++ RTTI(Run-Time Type Information) 총정리

1. RTTI의 개념 C++에서 RTTI(Run-time type information)는 런타임에 개체의 데이터 유형에 대한 정보를 노출하는 메커니즘으로, 하나 이상의 가상 기능을 가진 클래스에만 사용할 수 있다. 이를 통해 프로그램 실행 중에 객체의 유형을 결정할 수 있다. '런타임 캐스트' 라는 개념이 있는데, 이것은 캐스트가 유효한지 검사하는 것이다. 포인터나 참조를 사용하여 객체의 런타임 유형을 확인하는 가장 간단한 접근 방식이라 할 수 있다. 이는 기본 클래스에서 파생된 유형으로 포인터를 캐스팅해야 할 때 특히 유용하다. 클래스의 상속 계층 구조를 다룰 때 일반적으로 객체의 캐스팅이 필요하다. 이런 캐스트에는 두 가지 유형이 존재한다. ① 업캐스팅: 파생된 클래스 객체의 포인터 또는 참조를 기..

C++ 2024.04.19
728x90