Post

Chapter 9. Friend

Chapter 9. Friend

‘명품 C++Programming - 황기태’ 7장 학습 내용

소스코드

1절. Friend

C++ 프렌드

  • 프렌드 함수
    • 클래스의 멤버 함수가 아닌 외부 함수
      • 전역 함수
      • 다른 클래스의 멤버 함수
    • friend 키워드로 클래스 내에 선언된 함수
      • 클래스의 모든 멤버를 접근할 수 있는 권한 부여
      • 프렌드 함수라고 부름
    • 프렌드 선언의 필요성
      • 클래스의 멤버로 선언하기에는 무리가 있고, 클래스의 모든 멤버를 자유롭게 접근할 수 있는 일부 외부 함수 작성 시에 필요
항목세상의 친구프렌드 함수
존재가족이 아니며 외부인클래스 외부에 작성된 함수이며 멤버가 아님
자격가족의 구성원으로 인정받으며 가족의 모든 살림살이에 접근 허용클래스의 멤버 자격 부여. 클래스의 모든 멤버에 대해 접근 가능
선언친구라고 소개클래스 내에 friend 키워드로 선언
개수친구의 명수에 제한 없음프렌드 함수 개수에 제한 없음

프렌드 함수가 되는 3가지 유형

  • 전역 함수
    • 클래스 외부에 선언된 전역 함수
  • 다른 클래스의 멤버 함수
    • 다른 클래스의 특정 멤버 함수
  • 다른 클래스 전체
    • 다른 클래스의 모든 멤버 함수

becomefriend

프렌드 선언 3 종류

  • 외부 함수 equals()를 Rect 클래스에 프렌드로 선언
class Rect{// Rect 클래스 선언
 ...
 friend bool equals(Rect r, Rect s);
};
  • RectManager 클래스의 equals() 멤버 함수를 Rect 클래스에 프렌드로 선언
class Rect{// Rect 클래스 선언
 ...
 friend bool RectManager::equals(Rect r, Rect s);
};
  • RectManager 클래스의 모든 멤버 함수를 Rect 클래스에 프렌드로 선언
class Rect{// Rect 클래스 선언
 ...
 friend RectManager;
};
This post is licensed under CC BY 4.0 by the author.