第18章 フレンド関数


privateに宣言された、データメンバは外からアクセス できません。しかし、場合によってはアクセスできた方が 便利なこともあります。この時、friend キーワードを使います。 当然、friendの宣言はpublicとかprivateとは関係ないので、 クラス宣言の中では、どこに書いてもOKです。では、例題を見てみましょう。

#include <iostream.h> #include <string.h> class CatClass { int legs; char eye_color[32]; public: CatClass(); CatClass(char *str); friend void show(CatClass); }; CatClass::CatClass(void) { legs = 4; strcpy(eye_color, "gold"); } CatClass::CatClass(char *str) { strcpy(eye_color, str); legs = 4; } void show(CatClass a) { cout << "eye_color =" << a.eye_color << endl; cout << "legs = " << a.legs << endl; return; } int main(void) { CatClass Tama("blue"), Shiro; cout << "Tamaの記述" << endl; show(Tama); cout << "Shiroの記述" << endl; show(Shiro); return 0; }

上の例では、関数showは、メンバ関数ではありません。 しかし、CatClassの中でfriend宣言をしているため プライベートメンバにアクセス可能です。
さて、フレンド関数の使い方はおわかりいただけたでしょうか。

[C++Index] [総合Index] [Previous Chapter] [Next Chapter]

Update Jan/24/1997 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。