목록2025/03/25 (3)
나만의 작은 도서관

연산자 오버로딩(Operator Overloading)연산자 오버로딩은 C++에서 기존의 연산자(+, -, *, /, == 등)를 사용자가 원하는 방식으로 동작하도록 재정의하는 것을 의미한다.즉, 연산자 오버로딩은 사용자 정의 연산자를 정의하기 위해 사용한다.연산자 오버로딩을 사용하면 객체 간 연산을 보다 직관적으로 처리할 수 있다. 예를 들어, STL 컨테이너의 대표 컨테이너인 vector는 ‘>’와 같은 비교 연산자들을 오버로딩하여 서로의 크기를 비교할 수 있다. (자세한 내용은 여기 참고)대부분의 연산자들은 오버로딩이 가능하다. 심지어 [] (첨자 연산자), 오버로딩을 할 수 없는 연산자로는 :: (범위 지정), . (멤버 지정),.* (멤버 포인터로 멤버 지정)이 있다.연산자 오버로딩은 정의한 위..

오버로딩(Overloading)이란?오버로딩은 같은 이름의 함수를 여러 개 정의할 수 있도록 하는 기능을 의미한다.오버로딩 시 같은 이름의 함수를 호출했을 때 매개변수의 개수나 타입에 따라 서로 다른 함수가 호출되도록 할 수 있다.C++에서 생성자나 연산자는 특수 함수로 취급하므로 오버로딩이 가능하다. 따라서 오버로딩의 종류는 아래와 같다. 오버로딩 종류함수 오버로딩(Function Overloading)생성자 오버로딩(Constructor Overloading)연산자 오버로딩(Operator Overloading)C++ 오버로딩 규칙C++에서 오버로딩이 가능한 이유는 컴파일러가 인자 구성이 다른 함수는 이름이 같아도 서로 다른 함수로 취급하기 때문이다.즉, 컴파일러는 함수의 이름만이 아닌 함수의 시그니..

클래스(Class)란?클래스는 "특정 객체를 생성하기 위해 변수나 메서드를 정의하는 틀(템플릿)"을 의미한다.클래스(또는 구조체) 내부에 포함된 요소들을 “멤버”라고 부르며, 멤버는 변수의 타입에 따라 두 가지 멤버 접근 연산자(‘ . ’, ‘ → ’)를 통해 접근한다.일반 타입이라면 ‘ . ’, 포인터 타입이라면 ‘ → ’를 사용해 멤버에 접근한다.MyClass myClass;MyClass* myClass2 = new MyClass();myClass.data; // 일반 타입 변수는 '.'을 통해 접근myClass2->data; // 포인터 타입 변수는 '->'를 통해 역참조 접근 클래스의 선언부와 구현부C++에서 클래스는 보통 클래스 선언부와 클래스 구현부로 나눠 관리한다. 각각은 다음과 같다.클래..