○フレンド
クラスや関数にフレンド指定して、
自分のprivate部分を公開する

■フレンド関数

#include <stdio.h>

class aaa{
	friend void func(aaa*obj);//関数funcに自分のprivate部分を公開する
private :
	void a(){printf("a\n");}
};

void func(aaa*obj){
	obj->a();//クラスaaaのprivate部分を呼び出し
}

int main(){
	aaa a;
	func(&a);
	return 0;
}

処理結果
a

■フレンドクラス

#include <stdio.h>

class aaa{
	friend class bbb;//クラスbbbに自分のprivate部分を公開する
private :
	void a(){printf("a\n");}
};

class bbb{
	public :
	bbb(){
		aaa obj;
		obj.a();//クラスaaaのprivate部分を呼び出し
	}
};

int main(){
	bbb b;
	return 0;
}

処理結果
a




▲トップページ > Windows と C++