Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[940] Re:friend 이해가 잘안갑니다.
오전&오후 [kkhhyy11] 1717 읽음    2002-08-02 12:45
간단히 말해서 class의 친구로 선언한거죠..^^;
예를 들어서 friend 라는 키워드가 빠지면요..

printf("%6.4f\n",sin(x));
이부분에서 sin(x)를 x.sin(x)이렇게 사용하셔야 합니다..
이렇게 friend 함수를 사용하는 이유는요..
예를 들어서
Degree x(10), y(20); 이렇게 객체두개를 선언하고나서..
sin()함수를 사용할려고 하는데요..
friend라는 키워드가 없다면 sin()함수를 사용하려면
x.sin(x) 이라던가 y.sin(y)으로 사용하셔야합니다..
당연히 객체의 멤버함수로 사용해야되겠지요..

그런데 간단히 friend함수로 사용하시면 sin(x) 또는 sin(y)로
객체의 메머함수가 아닌 일반함수로 사용할수 있다는 거지요..

주의사항 : friend 함수는 클래스의 추상화에 위배가 되기때문에
많이 사용하면 안좋다고 그러네요..^^;
그러니까 꼭 필요할때만 사용하시면 됩니다..

김경래 님이 쓰신 글 :
: friend double sin()여기서 왜 friend가 들어간지
: 이해가 잘안갑니다. 제가 알기로는 friend는 다른 클래스에서
: 선언된 함수를 쓰기위해서이나 다른 클래스 전체를 참조할때
: 쓰는걸로 알고있는데요.. 여기는 클래스도 하나인데...
: 왜썼는지 이해가 잘안가거든요.
: 죄송하지만 고수님들 설명을 부탁합니다.
:
: #include <stdio.h>
: #include <math.h>
:
:
: class Degree {
: double deg;
: public:
: Degree (double x=0) {deg=x;}
: friend double sin(Degree x)
: {
: return(sin(x.deg *3.14159/180));
: }
: };
: void main(void)
: {
: int n;
: for(n=0;n<=180;n=n+20) {
: Degree x(n);
: printf("%6.4f\n",sin(x));
: }
: }
:
:

+ -

관련 글 리스트
935 friend 이해가 잘안갑니다. 김경래 1704 2002/08/01
940     Re:friend 이해가 잘안갑니다. 오전&오후 1717 2002/08/02
945         friend 함수는 클래스의 캡슐화에 위배되는 것이 아닙니다. 김백일 1698 2002/08/03
952             Re:friend 함수는 클래스의 캡슐화에 위배되는 것이 아닙니다. 오전&오후 1994 2002/08/05
953                 [펌]friend는 OOP에 충실하지 않을 것일까? 김백일 1784 2002/08/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.