来自:
http://blog.csdn.net/wbj1234566/article/details/2256642简单的讲 :把类外部的类或函数声明为友元类和友元函数,使其能直接访问类中的私有成员。
格式: friend 类 或 函数 声明
//此语句可以放在类中的任意位置,与访问权限保留字无关。
需要注意几个方面:
1.友元关系是不可以传递的。
比方说你是我的友元而Joe是你的友元,但这并不意味着Joe是我的友元。
2.友元关系不能继承。
3.友元关系不是互通。
把class A设置为class B的友元并不会使得class B成为class A的友元,也许你愿意把你的秘密告诉我,但是,这并不意味着我愿意把我的秘密告诉你。
具体的用法详细见下面的示例:
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![关于C++中友元类和友元函数的示例讲解](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)