728x90
JAVA, C#과는 달리 가비지 컬렉터가 없는 C++은 사용하지 않는 리소스를 해제해줘야 한다. 사용하지 않은 리소스는 메모리 누수라고 한다. 대신에 C++는 RAII라는 원칙이 있다. Resource acquisition is initialization의 약자인데, 솔직히 이름만 봤을땐 단번에 무슨 뜻인지 알기 어렵다.
간략하게 말하자면, 리소스를 클래스로 캡슐화해서 클래스의 인스턴스로 리소스를 사용하고, 스코프를 벗어나면 리소스를 자동으로 해제하는 것이다.
개체가 생성되었을때 호출되는 생성자로 리소스를 할당받으며 개체가 스코프를 벗어나면 소멸자가 호출되어 리소스를 해제한다.
728x90