본문 바로가기

Cpp

RAII란?

RAII (Resource Acquisition Is Initialization)

 

C++의 메모리 관리 개념. 
객체가 생성 될 때 생성자를 사용하고, 해제 할 때 소멸자를 사용하는 등의 C++ 에서의 자원 관리 방식들을 통칭하여 이르는 개념. 앉넌하게 자원을 관리하기 위해서 사용되어진다.

RAII 로 불릴수있는 자원 관리 방식

  • 생성자 소멸자 : 자원 획득시 생성자를, 해제 시 소멸자를 이용한다. 
  • 스마트 포인터 : unique 포인터 , shared 포인터는 생성자에서 메모리를 할당하고, 소멸자에서 자동으로 메모리를 해제하기 때문에 메모리 누수를 방지.
  • 참조 카운팅 : shared 포인터에서 사용하는 메모리 관리 방식. 객체를 참조하는 포인터의 갯수를 카운팅하며 카운팅이 0 이되면 소멸자에서 자동으로 메모리를 해제.

그 외에도
파일을 여닫을 때 fstream 객체를 생성하고 소멸될 때 파일이 자동으로 닫히게 구현.

멀티스레딩에서의 뮤텍스와 같은 동기화 객체에도 RAII  개념이 적용된다.


 

 

 

 

'Cpp' 카테고리의 다른 글

C++의 하위 언어  (0) 2024.12.14
바이트 패딩  (0) 2024.11.18
해시 테이블  (0) 2024.05.27
객체지향의 4대 특성  (0) 2024.05.27
가상 함수와 순수 가상 함수의 차이  (0) 2024.05.16