본문 바로가기

Overloading3

연산자 오버로딩(operator overlonding)(2) 연산자 오버로딩에 대해 알아 보았다, 하지만 아직 연산자 오버로딩에 대해 완벽하게 알고 있는 것 같진 않다. void main() { Point p1(1, 2); // p1.operator(10); p1 + 10; p1.ShowPoint(); // 10.operator(p1); 10 + p1; // 과연 이게 우리가 원하는 오버로딩인가? p1.ShowPoint(); // 값 또한 바뀌지 않았다. } // 결과 // 11 12 // 11 12​ 그렇다면 저 구문에 대해서 실행을 해주고 싶다면 어떻게 해야 할까? 이런 부분에 대해서는 전역으로 연산자 오버로딩을 해 주어야 한다. class Point { ... public: friend void operator+( int val, Point& p ); } v.. 2010. 4. 4.
연산자 오버로딩(operator overloading)(1) 기존에 존재하는 +, ++, == 등의 연산자를 프로그래머가 중복 정의가 가능하다. operator+, operator++ 등으로 오버로딩이 가능한데, 멤버 함수내에 선언할 수도 있고, friend 키워드를 사용해서 전역으로 사용 할 수도 있지만, 멤버 함수에 선언해서 사용하는 것에 대해서 먼저 살펴 보자. 연산자 오버로딩의 사용 예, #include class Point { int x, y; public: Point( int _x = 0, int _y = 0 ) : x(_x), y(_y) {} void ShowPoint(){std::cout 2010. 4. 4.
함수 오버로딩 (overloading) #include void temp(); void temp(int a); void temp(int a, int b); void temp(char a); void main() { temp(); temp(1); temp(1,1); temp('c'); } void temp() { std::cout 2010. 3. 15.