목록C++ (3)
재 현
C++ 프로그래밍 언어에서 '가상 함수'는 객체 지향 프로그래밍의 중요한 개념 중 하나입니다. 가상 함수를 사용하면 다형성(polymorphism)을 구현하고 객체 지향 프로그래밍의 핵심 원칙 중 하나인 '상속'을 더 유연하게 활용할 수 있습니다. 이 블로그 글에서는 C++의 가상 함수에 대해 자세히 알아보겠습니다. 가상 함수란 무엇인가요? 가상 함수는 C++에서 클래스의 멤버 함수 중에서 '가상(virtual)' 키워드로 선언된 함수를 가리킵니다. 가상 함수는 파생 클래스(subclass)에서 재정의(override)될 수 있으며, 이를 통해 다형성을 구현할 수 있습니다. 다형성은 하나의 인터페이스를 가지고 다른 구현을 제공함으로써 코드 재사용성을 높이고 유지 보수를 쉽게 만들어줍니다. class Sh..
이번 글에서는 C++의 스마트 포인터(Smart Pointer)에 대해 자세히 알아보겠습니다. 스마트 포인터는 C++11부터 표준 라이브러리에 추가된 기능으로, 메모리 관리를 자동화하고 메모리 누수를 방지하는데 도움이 됩니다. C++ 개발에서 스마트 포인터를 적절히 활용하면 프로그램의 안전성과 효율성을 향상시킬 수 있습니다. 스마트 포인터란? 스마트 포인터는 C++에서 자동 메모리 관리를 지원하기 위한 클래스로, RAII(Resource Acquisition Is Initialization) 디자인 패턴을 활용하여 자원을 자동으로 해제합니다. 스마트 포인터는 일반 포인터와 유사하게 동작하지만, 메모리를 자동으로 해제하므로 메모리 누수를 방지하고 예기치 않은 동작을 방지할 수 있습니다. 즉 메모리를 자동으..
이번 글에서는 C++에서의 메모리 관리에 대해 다뤄보겠습니다. C++은 다른 언어들과는 다르게 메모리 관리를 개발자가 직접 해야하는 언어로, 메모리 누수나 잘못된 메모리 접근으로 인한 버그들이 발생할 수 있습니다. 따라서 C++ 개발자는 메모리 관리에 대한 이해가 필수적입니다. (제가 처음 PR을 올렸을때, 메모리 해제에 대한 리뷰가 왕 많이 달렸었던 걸 생각하면... 필수입니다.) 이 글에서는 주요 개념들인 가비지 컬렉션, 정적 메모리, 동적 메모리, 할당 방법, 스마트 포인터, 그리고 RAII에 대해 살펴보겠습니다. 가비지 컬렉션 (Garbage Collection) 가비지 컬렉션은 C++에는 기본적으로 내장되어 있지 않습니다. 이는 C++의 주요 특징 중 하나로 개발자가 메모리 관리를 직접 해야하는..