cpp
-
Overloading 오버로딩 - 연산자뜯고 또 뜯어보는 컴퓨터/씨쁠쁠 C++ 2022. 11. 2. 12:54
0. Overloading 이란? C++에서는 코드에 이름이 같은 함수가 여러 개 있다면, 컴파일러(Compiler)는 함수를 호출하는 시점에, 타입이 일치하는 함수를 선택하게 되는데, 이를 오버 로딩(Overloading)이라 합니다.(오버 라이딩(Overriding)과 혼동하는 경우가 많으니, 주의해야 합니다.) 더구나 C++는 대부분의 연산자가 클래스와 관련된 특수 연산을 수행하도록 오버 로드하는 기능을 제공하는데, 예를 들어서 String 클래스는 + 연산자를 오버 로드하여 두 문자열을 연결할 수 있도록 합니다. 다양한 오버 로딩 연산자가 있지만, 이 글에서는 연산자 함수의 오버 로딩에 대해서 알아보겠습니다. (연산자 함수를 오버 로딩하면서, 유저가 만든 다양한 구조체 및 클래스에 대해서, 연산을..
-
스마트 포인터 : Unique_ptr뜯고 또 뜯어보는 컴퓨터/씨쁠쁠 C++ 2022. 5. 8. 10:24
C+11 부터, BOOST 라이브러리 들의 boost::shared_ptr, boost::scoped_ptr 등은 표준화 되어, std::unique_ptr, std::shared_ptr 들이 되었습니다. 개인적으로 스마트 포인터를 직접 만들어 보는 것은 별로 좋은 생각이 아닙니다. 스마트 포인터들의 작동방식은 간단해보이지만, 실제로 스마트 포인터들은 모든 맥락에서 올바르게 작동하도록 노력한 라이브러리 이기 때문입니다. 요번 글에서는 Smart Pointer 중 하나인 Unique Ptr 의 사용법 과 간단한 예시를 보입니다. 먼저 Unique_ptr 이란 ? (cpp reference 발췌) std::unique_ptr is a smart pointer that owns and manages anoth..