본문 바로가기

C & C++

(2)
C++ <가상 함수의 동작 원리> V-Table & V-Pointer 가상 함수의 동작 원리를 이해하기 위해 꼭 필요한 개념인 V-Table와 V-Pointer에 대해 먼저 알아봅시다. V-Table 란? - 하나 이상의 가상 함수를 가진 클래스에 대해서 컴파일러에서 만들며 바이너리 'rdata' 영역에 기록되는 테이블 - Key 와 Value 로 구성되어 있으며 Key 를 통해 Value 에 접근하는 방식으로 Key 에는 함수 식별자, Value 에는 함수의 주소 정보가 저장됨. V-Pointer 란? - V-Table 의 주소를 참조하는 포인터 변수로 가상 함수를 가진 클래스로 객체를 생성했을 때 그 생성된 각각의 객체가 V-Pointer 를 갖고있음. V-Table 생성 원리 AAA 라는 클래스가 존재하고 BBB 클래스가 이를 상속..
C&C++ <자료형과 변수> 이번 포스팅에서는 여러 프로그래밍 언어의 기초가 되는 자료형과 변수에 대해 설명하고자 한다. 자료형에 대해 설명하기 이전에 우리는 컴퓨터의 메모리(Ram)구조에 대해 간략하게 알고 넘어갈 필요가 있다. 위 사진은 검은 테두리 부분이 메모리 전체를 뜻하고 각각 1바이트 단위로 주소가 매겨져 있다는 것을 설명하기 위한 것이다. 1바이트는 8비트와 같으며 비트란 컴퓨터 메모리를 구성하는 최소한의 단위로 1bit 당 0,1 두가지를 표현할 수 있다. 다시 말해, 저 사진에 주소가 적혀있는 네모 한칸을 다시 8칸의 비트로 쪼갤 수 있다는 뜻이다. 자 그럼 본격적으로 자료형에 대해 정의해보겠다. 자료형이란 "사용자(프로그래머)가 컴퓨터 메모리를 얼마나 사용할 것인지 명시하는 것" 을 의미한다. 그리고 우리는 이 자..