ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 iconst Pointerp) {

        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
Designed by Tistory.