// ( t12.C ) // クラスのフレンド宣言の基礎 // #include extern class DRAW ; // Line クラスの中で DRAW クラス が frined 宣言 // してある。DRAW は Line クラスの定義の後に出て // くるので、前もって使いますよと宣言をしておく。 class Line { int x ; void show() { cout << "line: " << x << endl ; } friend class DRAW ; // 注目:クラスの friend 宣言 public: Line( int i ) { x = i ; } } ; class DRAW { Line* l ; public: DRAW( Line* a ) { l = a ; } void print1() { cout << l->x << endl ; } void print2() { l->show() ; } } ; main() { Line a( 10 ) ; // DRAW クラスは、Line クラスでフレンド宣言 DRAW d( &a ) ; // しているので、Line オブジェクトの private // な変数と関数を自由に使うことができる。 d.print1() ; // 10 d.print2() ; // line: 10 }