friend로 선언된 함수 또는 클래스는 이들을 정의해 준 class의 내부 변수를 볼 수 있지만, 그 역은 성립하지 않음.
friend function의 예제
friend class의 예제
friend function의 예제
// friend functions #include <iostream> using namespace std; class CRectangle { int width, height; public: void set_values (int, int); int area () {return (width * height);} friend CRectangle duplicate (CRectangle); }; void CRectangle::set_values (int a, int b) { width = a; height = b; } CRectangle duplicate (CRectangle rectparam) { CRectangle rectres; rectres.width = rectparam.width*2; rectres.height = rectparam.height*2; return (rectres); } int main () { CRectangle rect, rectb; rect.set_values (2,3); rectb = duplicate (rect); cout << rectb.area(); return 0; }
friend class의 예제
// friend class #include <iostream> using namespace std; class CSquare; class CRectangle { int width, height; public: int area () {return (width * height);} void convert (CSquare a); }; class CSquare { private: int side; public: void set_side (int a) {side=a;} friend class CRectangle; }; void CRectangle::convert (CSquare a) { width = a.side; height = a.side; } int main () { CSquare sqr; CRectangle rect; sqr.set_side(4); rect.convert(sqr); cout << rect.area(); return 0; }
'Coding > VB C C++' 카테고리의 다른 글
Global conditional define (#const) statements in vb.net (0) | 2016.02.03 |
---|---|
예술적인 C 코드 (0) | 2008.02.19 |
[C&C++] Inheritance between classes (0) | 2007.12.18 |
[C&C++] static member (0) | 2007.12.17 |
[C&C++] constructor, destructor (0) | 2007.12.17 |