목록2025/09 (2)
삶의 공유
📘 C++ 함수 객체(Function Object) 완전 정리C++ 프로그래밍을 하다 보면 함수를 값처럼 전달해야 하는 경우가 많습니다. 이때 단순 함수 포인터보다 더 강력하고 유연하게 쓸 수 있는 것이 바로 함수 객체(Function Object, Functor) 입니다.이번 글에서는 함수 객체가 무엇인지, 왜 필요한지, 그리고 STL과 람다와의 관계까지 차근차근 정리해보겠습니다.1. 함수 객체(Function Object)란?operator() 연산자를 재정의하여 함수처럼 호출할 수 있는 객체 struct Print { void operator()(int x) const { std::println("x = {}", x); }};int main() { Print p; ..
📘 C++ 스마트 포인터(Smart Pointer) 완전 정리 현대 C++에서 **스마트 포인터(Smart Pointer)**는 자원 관리(Resource Management)를 단순화하고, 안전하게 만드는 핵심 기능입니다. 이 글에서는 스마트 포인터의 원리부터, 직접 구현 예제, 그리고 표준 라이브러리에서 제공하는 스마트 포인터까지 정리해보겠습니다.1. 스마트 포인터란?포인터처럼 동작하는 객체스마트 포인터는 일반 포인터의 역할을 하면서도 객체이기 때문에생성자소멸자복사/대입/이동 연산자등의 과정을 통해 다양한 추가 작업을 자동으로 수행할 수 있습니다.특히 소멸자에서 자원 해제를 보장하기 때문에,new 로 생성한 객체를 직접 delete 하지 않아도 됩니다.2. 스마트 포인터의 원리핵심은 바로 연산자 오..