当一个类B作为另一个类A的友元时,这就意味着这个类的所有成员函数都是另一个类的友元函数。 
假如这时候有个C类,是B的继承类,为什么C类中的A类型成员变量无法访问类A的非公有方法?
也就是说A只认B为其友元,而不认为C也是其友元,为什么?
例如
class B;
class A
{
friend class B;
public:
A() {}
protected:
void print();
};void A::print()
{
printf("A:print()\n");
}
class B
{
public:
B() {}
virtual ~B() {}
public:
virtual void print() { m_objA1.print(); }
protected:
A m_objA1;
};class C : public B
{
public:
C() {}
~C() {}
public:
virtual void print() {m_objA2.print(); }
protected:
A m_objA2;
};编译的时候出错
error C2248: 'print' : cannot access protected member declared in class 'A'