operator overloading 2

operator overloading 2

operator->() #"->"의 연산자 겹지정은 포인터를 리턴으로 하는 형식을 취하고 있으며 리턴되는 포인터의 "->" 연산자를 사용한 효과를 내는 특이한 특성을 가지고 있습니다. 이러한 형식으로 operator->() 함수의 리턴되는 포인터의 멤버를 제어할 수 있는 능력을 부여합니다. #include #include using namespace std; template class SmartPtr { public: explicit SmartPtr(T *p = 0) : p_(p) {} virtual ~SmartPtr() { delete p_; } T* operator->() { return p_; } // 아래의 두개의 함수인 "!" 연산자 겹지정 함수와, // bool 타입으로의 변환연산자 함수는 융..

Dev/C++ 2008.05.01

operator overloading 1

operator overloading #연산자 겹지정은 c++의 사용자 정의 타입 - class - 에 기본타입의 인터페이스를 부여할때 사용합니다. 예를들어 집합 객체에 "+" 연산자를 이용해서 합집합을 구현한다던가 스트림 객체와의 인터페이스를 위해 "" 를 구현하는것이 여기에 속합니다. 연산자 겹지정은 연산자 마다 각각 그 의미에 맞게 구현 할수도록 규칙이 존재합니다. 예를들어 +, -, /, * 연산자는 각각 의미에 맞에 2항 연산자로서 사용이 되야하며 +, - 는 더불어 부호를 표시하는 단항 연산자로서 사용할수 있고 *는 포인터가 가르키는 의미로서의 단항연산자로 사용이 가능합니다. 그럼 이걸 어떻게 다 외우느냐 라고 생각이 드실지 모릅니다. 그때 쉽게 적용하는 방법은 Scott Meyers의 연산자..

Dev/C++ 2008.05.01