shared_ptr

1. 개념 1. 스마트 포인터자원 관리는 C++에서 가장 골치 아픈 문제입니다. 객체를 동적 할당받은 경우 "delete" 호출 없이 자원 해제가 되지 않기 때문에 "delete" 호출을 잊어버리는 경우 심각한 문제(eg 메모리 릭)가 발생할 수 있습니다. 더불어, 단순한 포인터의 동적 할당 수행은 Aliasing 문제도 동반합니다. 어떤 경우에는 하나의 포인터를 여러 코드 위치에서 복제하여 참조할 수 있습니다. 이때, 마지막으로 사용된 곳에서 "delete" 호출을 통해 자원 해제를 진행해야 하지만, 파악하기 굉장히 어렵죠.이때, 스마트 포인터가 큰 도움을 줄 수 있습니다. 스마트 포인터는 "스택(정적 할당 받은 메모리들의 영역)"의 안정성과 유연성을 포함합니다. 스마트 포인터를 통해 동적 할당받은 메..
[Effective C++] #14 자원 관리 객체 심화 Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 3장 "자원 관리", 항목 14 "자원 관리 클래스의 복사 동작에 대해 진지하게 고찰하자"에 해당하는 내용입니다. 자원 관리 객체의 복사 class Lock { public: Lock (Mutex* pm) : mutexPtr(pm) {lock(mutexPtr);} ~Lock(){unlock(mutexPtr);} private: Mutex* mutexPtr; } #include using namespace std; int main() { Mutex m; Lock m1(&m); ...// m1 객체의 소멸자 호출 및..
Hardii2
'shared_ptr' 태그의 글 목록