|
간단히 말해서 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));
: }
: }
:
:
|