언어 및 엔진(79)
-
[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 -
[C++] Malloc / Free & New / Delete
Malloc / Free 와 New / Delete의 차이 Malloc / Free : 라이브러리가 제공하는 함수 정적 메모리 할당은 정해진 크기를 받은 후 돌려주는 방식 - 미리 크기를 정해놓아야 함 Malloc/Free는 동적 메모리 할당. 할당 대상의 정보를 바이트 단위로 전달해야 함 형 변환 필요(반환형이 void임) 메모리 누수를 방지하기 위해 반드시 free함수를 사용하도록 한다 모든 공간을 0으로 자동 초기화 생성자 없음 realloc으로 재할당 가능 New / Delete : 언어가 제공하는 연산자. 생성 / 소멸자 호출 new : malloc을 대신 함 delete : free를 대신 함 C++에서 객체의 생성에는 반드시 new delete를 사용해야 함 new: 힙에 할당된 변수를 포인..
2024.04.17 -
[C++] 디자인 패턴
디자인 패턴의 정의 상황에 따라 자주 쓰이거나 효율적인 설계 방법을 정리한 코딩 방법론. 절대적인 모든 상황의 해결책은 아니다. 디자인 패턴의 종류 생성 패턴 : 추상 팩토리 패턴, 빌더 패턴, 팩토리 매서드 패턴, 프로토타입 패턴, 싱글톤 패턴 구조 패턴 : 어댑터 패턴, 브릿지 패턴, 합성 패턴, 데코레이터 패턴, 파사드 패턴, 플라이웨티프 태너, 프록시 패턴 행동 패턴 : 책임연쇄 패턴, 커맨드 패턴, 해석자 패턴, 반복자 패턴, 옵저버 패턴, 전략 패턴, 템플릿 메서드 패턴, 방문자 패턴, 중재자 패턴, 상태 패턴, 기념품 패턴 잘 쓰이는 디자인 패턴들 -싱글톤(생성 패턴) 하나의 메모리를 공유하여 사용 무분별하게 객체의 인스턴스가 생성되는 것을 막아줌 -상태패턴(State Pattern)(행동 ..
2024.04.17