2025/01 3

C/C++ 스마트 포인터 간단 정리

스마트 포인터 C++ 프로그램에서 동적할당 된 메모리는, 반드시 delete를 통해서 메모리 해제가 이루어져야 합니다.C++에서 메모리 누수로부터 프로그램의 안정적으로 관리할 수 있도록스마트 포인터를 제공하고 있습니다.이 스마트 포인터는 RAII의 개념을 기반으로 제작되었으며,클래스 템플릿으로 구현되어 있습니다.포인터 처럼 동작하는 클래스 템플릿으로, 사용이 끝난 메모리를 자동으로 해제해주고,Dangling 포인터, 할당 실패 등의 버그를 방지하도록 제작되었습니다. 이러한 스마트 포인터의 사용 이유는,스마트 포인터를 사용함으로써,new, delete와 같은 키워드를 사용하는 추가적인 코드를 줄일 수 있으며,RAII 개념을 기반으로 제작되었기 때문에,제작의도에 맞게 사용자가 메모리 관리를 할 때 좀 더 안..

그래서 다형성이 뭐라고요?

간단히 말하자면하나의 개체나 메소드가 여러 가지 형태를 가지는 것이다. 여러 가지 형태를 가지는 것이니,오버로딩과 오버라이딩을 써서 여러 형태를 가지는 기능들을한데 묶어 분류해 놓은 것이다. 다형성은 굉장히 중요하다.그 이유는, 실제 유용성이 굉장히 많다.예를 들어 게임이라고 하면,몬스터의 종류가 많을 것이다.이런 몬스터의 부모 클래스가 되는 BaseMonster 클래스가 있을 것이고,이 클래스에 파생되는 애들도 있을 것이다.그럼 몬스터 종류가 약 20개쯤 된다고 가정해보자. 이 다른 타입들을 배열에 저장하기에는 좀 부담스럽다.귀찮고 번거로운 일이기 때문에. BaseMonster 클래스 내부에virtual 반환형 Move()  함수를 제작한다.이후 monster* 배열을 제작한 후, 이 배열 내부에 있는..