언어 및 엔진/C++(39)
-
[C++] Virtual Function / Virtual Table
Virtual Function(가상함수)와 Virtual Table 파생 클래스에서 재정의 할 것으로 기대하는 맴버 변수 앞에 Virtual이 붙음 객체의 동적타입에 따라 실제 호출할 함수가 결정 가상함수를 이루고 있는 근간이 Virtual Table 가상함수가 1개라도 존재한다면 클래스에 대해 가상함수를 생성 -> Virtual Table 객체를 생성하기 이전에 Virtual Table의 주소를 지정하는 가상함수 포인터를 할당(4바이트)
2024.04.17 -
[C++] 단배열 / 이중배열
단배열과 이중배열의 속도 비교 컴파일러의 발전으로 단배열이 더 빠름
2024.04.17 -
[C++] Pointer / 참조자
Pointer와 참조자(*, &) 비교 함수인자로 사용해야 할 때, const의 성향을 지우기 위해 *를 사용 포인터와 참조자는 다른 객체(변수)를 간접적으로 참조하는 역할 포인터는 NULL값을 가질 수 있고, 참조자는 NULL값을 가질 수 없다 참조자는 선언 시 반드시 초기화를 해야 한다 초기화 시 참조자는 객체(변수)를 직접 입력 받고, 포인터는 객체(변수)의 주소값을 입력받음 참조자는 가리킨 대상을 변경할 수 없고, 포인터는 가리킨 대상의 변경이 가능하다 클래스 맴버 접근 시 참조자는 . 사용, 포인터는 -> 사용 참조자를 사용하는 상황 : 참조할 객체가 이미 존재할 경우, 다른 객체를 참조할 일이 절대 없을 경우, 포인터를 쓰면 어색해지는 연산자를 오버로딩 할 경우
2024.04.17 -
[C++] Pointer
Pointer에 대해 무엇의 주소를 가져오는가에 따라 *, ->, **등 쓰임새가 다르다 * : 변수의 주소 값을 지정, 일반적으로 사용함 -> : 구조체에 접근할 때 사용 ** : 이중 포인터. 처음 * 는 주소를 가리키는 포인터 두번째 *는 그 포인터 주소를 가리키는 포인터
2024.04.17 -
[C++] Call by value / Call by reference
Call by value/ Call by reference 차이점 함수 호출 방법 Call by value(값에 의한 호출) : 값이 복사되어 전달 복사하기 때문에 안전. 원래 값이 보존. 메모리 사용량 증가 Call by reference(참조에 의한 호출) : 주소가 전달 직접 참조를 하므로 빠름 원래 값이 영향을 받음
2024.04.17 -
[C++] Struct / Class
C++에서의 struct와 class의 차이점 디폴트 접근제어 지시자에 따라 다르다 struct는 public class는 private - public으로 선언하지 않으면 접근 불가 struct는 값 타입 class는 참조 타입 값 타입 : 자료형을 가진 변수를 직접 할당, 직접 값을 지정. 스택에 할당 참조 타입 : 데이터가 저장된 위치를 참조(new). 힙에 할당. 가비지 콜렉터에 의해 메모리 해제 가능 struct는 상속받을 수 없음 class는 상속받을 수 있음(인터페이스는 가능함)
2024.04.17