请注意: 基类的友元(的定义体)是可以使用派生类中直接继承自基类的那一部分成员的;基类的友元不能直接使用派生类重定义的虚函数,但可以通过动态绑定实现,即友元函数(或友元类的函数成员)的输入形参是基类的引用或指针,但实参是派生类的引用或指针,这样最终使用的还是派生类中的虚函数版本;让派生类直接做形参,并使用重定义的虚函数则会报错;派生类的定义体和友元不能使用基类中的private成员;