c++中的友元不具有傳遞性
- 老子的朋友是老子的朋友喇闸,兒子的朋友是兒子的朋友
class Base
{
friend class F;//1
protected:
int a;
};
class Extend : public Base
{
friend class F;//2
protected:
int b;
};
class F
{
Base b;
Extend e;
void f()
{
b.a;//1.處不聲明此處是錯(cuò)誤的
e.b;//2.處不聲明此處是錯(cuò)誤的
e.a;//2.處不聲明此處是錯(cuò)誤的
}
};
- 你是我的朋友懦窘,他是我的朋友,但你不是他的朋友
class ni
{
//不能訪問ta的成員
};
class wo
{
friend class ni;
};
class ta
{
friend class wo;
};
- 要想是兩個(gè)類互為友元必須在兩個(gè)類中都要聲明對(duì)方婶恼。