-
Friend의 사용시기C++ 2014. 1. 14. 11:52
Friend는 객체지향의 의미를 위반하는 것으로 사용하지 않으나
한가지 경우에 예외적인 사용을 한다.
Pointer p4 = 10+p3;
+operation 사용시 왼쪽에 int를 넣을 수가 없다.
그래서 사용하는 방법이 전역함수를 사용하여 int를 매개변수로 받는 방법이다.
Pointer operator+(int i, const Pointer& p) {
Pointer(temp);
temp.x=i+p.x;
temp.y=i+p.y;
return temp;
}
그리고 .h에서 private mamber를 access하기 위해서 friend를 사용.
public:
Pointer(void);
~Pointer(void);
Pointer& operator++();
Pointer& operator--();
Pointer operator++(int);
Pointer operator+(const Pointer&);
Pointer operator-(const Pointer&);
friend Pointer operator+(int i, const Pointer&);
위의 코드를 조금 쉽게 구현을 하면
Pointer operator+(int i, const Pointer& p) {
return p+i;
}
생각을 해보면 순서만 바꾸어서 다른 operator+를 호출한다.
'C++' 카테고리의 다른 글
RTTI : Run-time type information 사용예 (0) 2014.01.18 Template 사용 (0) 2014.01.16 Overloading과 Overriding의 차이 (0) 2014.01.14 가상함수, 추상클래스의 권고 사항 (0) 2014.01.14 const 사용 (0) 2014.01.14