//友元关系的双向都是不可继承的 #include<iostream> class Base{ friend class Frnd; protected: int i; }; class D1 : public Base{ protected: int j; }; class Frnd{ public: int mem(Base b) { return b.i; }//ok int mem(D1 d) { return d.i; }//ok //int mem(D1 d) { return d.j; }//error }; class D2 : public Frnd{//访问权限没继承来 public: //int mem(Base b) { return b.i; }//error,'int Base::i' is protected, }; int main(){ return 0; }