友元函數和友元類

友元函數是全局函數,其關鍵字爲friend,破換了封裝性,友元函數可以直接獲取和操作類的私有成員;
若F類爲A類的友元類,則F類的所有成員函數都是A類的友元函數,友元類通常設計爲一種對數據操作或類之間傳遞消息的輔助類。

#include<iostream>

using namespace std;


class A
{
public:
A()
{
a = 100;
b = 200;
}
int getsa()
{
return this->a;


}
friend void seta(A *p,int a);

protected:
private:
int a;
int b;


};
void seta(A *p, int a)
{
p->a = a;
}


void main01()
{
A mya; 
cout<<"mya.getsa()"<<mya.getsa()<<endl;
seta(&mya,300);
cout << "mya.getsa()" << mya.getsa() << endl;

system("pause");
}


class A1
{
friend class B1;//B1是A1的友元類
public:
void display()
{
cout << "x=" <<x<< endl;
}

private:
int x;
};


class B1
{
public:
void seta(int w)
{
Aobj.x = w;
}
void print()
{
cout << Aobj.x << endl;
}


protected:
private:
A1 Aobj;
};


void main()
{
B1 b1;
b1.seta(100);
b1.print();
system("pause");
}
發佈了61 篇原創文章 · 獲贊 7 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章