CS/C++
-
다형성과 동적 바인딩 런타임에 적절한 함수를 호출하는 데는 가상 테이블(vtable)과 가상 포인터(vptr)라는 메커니즘이 사용된다. 이러한 메커니즘은 다형성을 구현하고 런타임에 객체의 실제 타입을 기반으로 올바른 함수를 호출할 수 있게 해준다. 아래에서 이 메커니즘이 어떻게 작동하는지 간략하게 설명 가상 테이블(vtable): 각 클래스에 대해 컴파일러는 가상 테이블을 생성. 가상 테이블은 클래스의 가상 함수에 대한 포인터를 저장하는 테이블이다. 각 가상 함수에 대해 하나의 항목이 있으며, 이 항목은 해당 함수의 주소를 저장한다. 가상 테이블(vtable): 각 클래스에 대해 컴파일러는 가상 테이블을 생성. 가상 테이블은 클래스의 가상 함수에 대한 포인터를 저장하는 테이블이다. 각 가상 함수에 대해 ..
다형성, virtual, override, virtual table, 동적 바인딩다형성과 동적 바인딩 런타임에 적절한 함수를 호출하는 데는 가상 테이블(vtable)과 가상 포인터(vptr)라는 메커니즘이 사용된다. 이러한 메커니즘은 다형성을 구현하고 런타임에 객체의 실제 타입을 기반으로 올바른 함수를 호출할 수 있게 해준다. 아래에서 이 메커니즘이 어떻게 작동하는지 간략하게 설명 가상 테이블(vtable): 각 클래스에 대해 컴파일러는 가상 테이블을 생성. 가상 테이블은 클래스의 가상 함수에 대한 포인터를 저장하는 테이블이다. 각 가상 함수에 대해 하나의 항목이 있으며, 이 항목은 해당 함수의 주소를 저장한다. 가상 테이블(vtable): 각 클래스에 대해 컴파일러는 가상 테이블을 생성. 가상 테이블은 클래스의 가상 함수에 대한 포인터를 저장하는 테이블이다. 각 가상 함수에 대해 ..
2023.10.31 -
https://stackoverflow.com/questions/1674032/static-const-vs-define-vs-enum "static const" vs "#define" vs "enum" Which one is better to use among the below statements in C? static const int var = 5; or #define var 5 or enum { var = 5 }; stackoverflow.com 몇가지 주목할 점: #define은 전처리기가 처리(즉, 그냥 문자그대로 바꿔치기) . 따라서 디버깅 할때 심볼이 따로 안잡힘. 디버깅 어려움 사용성에서 const int는 제약이 생길수도. 배열크기 초기화, switch문 인덱스값 등에 사용할 수 없을 수..
"#define" vs "static const" vs "enum"https://stackoverflow.com/questions/1674032/static-const-vs-define-vs-enum "static const" vs "#define" vs "enum" Which one is better to use among the below statements in C? static const int var = 5; or #define var 5 or enum { var = 5 }; stackoverflow.com 몇가지 주목할 점: #define은 전처리기가 처리(즉, 그냥 문자그대로 바꿔치기) . 따라서 디버깅 할때 심볼이 따로 안잡힘. 디버깅 어려움 사용성에서 const int는 제약이 생길수도. 배열크기 초기화, switch문 인덱스값 등에 사용할 수 없을 수..
2023.10.26