Outdated/Library 4

[Modern C++] Smart Pointer - std::unique_ptr

보았듯 좀 더 최적화가 되어있다.주로 사용되는 메소드는 다음과 같다.이름설명get자원에 대한 포인터를 반환한다.release자원을 가리키는 포인터를 돌려준 후 해당 자원을 해제한다.reset자원을 재설정 한다.swap인자로 전달된 포인터와 자원을 치환한다.Terminology메모리 누수동적으로 객체 생성 및 사용 후, 메모리를 시스템에 반환하지 않아 누적되면 메모리가 부족해지는 현상댕글링 포인터포인터 변수가 가리키는 객체를 이미 삭제해서 다른 용도로 메모리를 사용중임에도 이 공간을 그 포인터 변수로 다시 참조하는 경우중복 삭제한 코드에서 객체를 삭제했는 데, 다른 코드에서 그 메모리를 다시 삭제하는 경우

Outdated/Library 2018.01.09

[Modern C++ 14] Smart Pointer - std::weak_ptr

Modern C++ 14주제 : Smart Pointer(std::unique_ptr, std::shared_ptr, std::weak_ptr) 헤더 : 설명 모던 C++에는 스마트 포인터 객체가 추가되었다. 기존 C 스타일의 포인터는 동적으로 생성된 객체들을 프로그래머가 잘 제어했어야 했다. 메모리가 잘 관리되지 않는다면 메모리 누수(memory leak), 댕글링 포인터(dangling pointer), 중복 삭제(double free) 등의 문제가 생길 수 있다. 스마트 포인터는 RAII(Resource Acquisition Is Initialization) 기법을 이용해 메모리 해제를 자동화시킴으로써 프로그래머의 실수를 줄여 보다 더 안전한 프로그래밍을 할 수 있게 되었다. 또한, 템플릿으로 작성..

Outdated/Library 2018.01.04

[Modern C++ 14] Smart Pointer - std::shared_ptr

Modern C++주제 : Smart Pointer(std::unique_ptr, std::shared_ptr, std::weak_ptr) 헤더 : 설명 모던 C++에는 스마트 포인터 객체가 추가되었다. 기존 C 스타일의 포인터는 동적으로 생성된 객체들을 프로그래머가 잘 제어했어야 했다. 메모리가 잘 관리되지 않는다면 메모리 누수(memory leak), 댕글링 포인터(dangling pointer), 중복 삭제(double free) 등의 문제가 생길 수 있다. 스마트 포인터는 RAII(Resource Acquisition Is Initialization) 관용구를 이용해 메모리 해제를 자동화시킴으로써 프로그래머의 실수를 줄여 보다 더 안전한 프로그래밍을 할 수 있게 되었다. 또한, 템플릿으로 작성되어..

Outdated/Library 2018.01.02

[Modern C++]Initializer_list

Initializer list from Seonmun Choi Modern C++주제 : std::Initializer_list 헤더 : 설명 : initializer_list 타입의 객체는 배열 식의 접근이 가능한 경량화된 대용 객체(a lightweight proxy object)이다.기존 C++03까지는 다음과 같은 4가지의 초기화 방법을 제공하였다.예1 괄호) std::string s("apple"); 예2 =) std::string s = "apple"; int n = 0; 예3 {}) int arr[4] = {0,1,2,3}; struct tm today = {0}; 예4 생성자) struct S { int x; S(): x(0) {} } 기존 초기화의 문제점은 동적 배열의 초기화 방법이 없다..

Outdated/Library 2017.11.24