c++友元のいくつかの状況

1646 ワード

一、友元類
クラスのプライベートメンバーの場合、クラスのメンバー関数のみがアクセスでき、他のクラスはアクセスできません.友元クラスとは、現在のクラスにアクセスできる別のクラスのプライベートメンバーであり、現在のクラスで友元クラスを宣言できます.コードは次のとおりです.
#include 
using namespace std;
class A
{
private:
	int num;
public:
	A():num(0){cout << "A      "<

二、友元方法:
クラスが1つのメソッドのみを別のクラスのプライベートメンバーにアクセスさせる場合は、別のクラスでメタクラスを宣言できます.
コードは次のとおりです.
#include 
using namespace std;
class A;
class B
{
private:
	A *b; 
public:
	B();
	~B();
	void display();
};
class A
{
private:
	int num;
public:
	A():num(0){cout << "A      "<num << endl;
}

int main(void)
{
	B c;
	c.display();
	return 0;
}

三、外部メンバー関数を友元として宣言する
1、グローバル関数がクラスのプライベートメンバーにアクセスしたい場合は、クラスで友元として宣言することで、コードにアクセスできます.
#include 
using namespace std;
class A
{
private:
	int num;
public:
	A():num(0){cout << "      "<

2、クラス内で友元関数を定義した場合の効果は、外で定義したものと同じコードです.
#include 
using namespace std;
class A
{
private:
	int num;
public:
	A():num(0){cout << "      "<