언어 및 엔진/C++(39)
-
[C++] Smart Pointer
Smart Pointer 스마트 포인터 메모리 누수(메모리를 할당해 놓고 해제를 안하는 등)를 방지하기 위해 자동으로 메모리 해제를 시켜주는 포인터 unique_ptr 하나의 스마트 포인터 만이 특정 객체를 소유할 수 있도록 객체에 소유권 개념을 도입한 스마트 포인터. 해당 객체의 소유권을 가지고 있을 때만 소멸자가 해당 객체를 소멸할 수 있다. 1 : 1 shared_ptr 하나의 특정 객체를 참조하는 스마트포인터가 총 몇 개인지 참조. 이렇게 참조하고 있는 스마트 포인터의 개수를 참조 횟수(Reference Count)라고 하는데, 참조 횟수는 특정 객체에 새로운 shared_ptr이 추가될 때 마다 1씩 증가하고 수명이 다할 때마다 1씩 감소. 따라서 ,shared_ptr의 수명이 다해 참조 횟수가..
2024.04.19 -
[C++] Overloading / Overriding
Overloading / Overriding Overloading 함수 중복 정의. 같은 이름의 함수에 매개 변수를 다르게 사용해서 매개변수에 따라 다른 함수 실행 동일 클래스 내 혹은 상속관계에서 가능 Overriding 함수 재정의. 덮어 쓰다 상속받았을 때 부모 클래스의 함수를 사용하지 않고 다른 기능을 실행할 때 자식클래스에 다른 이름, 매개변수로 재정의해서 사용하는 것 상속 관계에서만 가능
2024.04.19 -
[C++] Static / Extern
Static / Extern Static 전역변수 선언 시 내부 연결 속성을 가짐, 정적 맴버 변수 지역변수 선언 시에도 사용 가능 지역변수에 사용 시 자동 주기 -> 정적 주기 == 정적 변수 지역변수로 선언해도 해당 블록이 끝나도 값을 유지함 Extern 다른 소스파일에 선언된 전역변수를 사용할 때 사용 함수에도 사용 가능
2024.04.19 -
[C++] TCP / UDP
TCP / UDP TCP 데이터를 메시지로 보내기 위해 IP와 함께 사용하는 프로토콜 형식. 신뢰성있는 전송 중요 연결형 서비스 가상 회선 방식 전송 순서 보장 수신 여부 확인 1 : 1통신 신뢰성 높음 속도 느림 UDP 데이터를 데이터그램 단위로 처리하는 프로토콜 형식. 연속성 중요 비연결형 서비스 데이터그램 방식 전송 순서 비 보장 수신 여부 확인 안 함 1 : 1 또는 1 : N 또는 N : N 통신 신뢰성 낮음 속도 빠름
2024.04.19 -
[C++] List 내 검색
List에서 정해진 인덱스의 값을 최대한 빨리 찾기 forward_list를 사용한다
2024.04.19 -
[C++] Object Pool
Object Pool 일정한 크기의 메모리 공간을 미리 생성하여 필요하면 꺼내거나 반납하여 퍼포먼스를 최적화 하기 위함. 보통 list를 사용 공간이 부족하면 확장 후 넘겨줌 동적할당 시 메모리 생성과 삭제가 빈번하게 일어나면서 성능이 저하되고 파편화가 된다.
2024.04.19