标题：Friend
词典解释
名词 n. [C]
1.（可用作称呼）朋友，友人
He is a close friend of mine. 
他是我的挚友。 
2.赞助者；支持者[(+of/to)]
That rich lady is a friend of the arts. 
那位富婆是艺术的赞助者。 
3.同胞；同伴
4.（经常遇见的）陌生人
及物动词 vt.
1.与…为友;帮助
习惯用语
A friend in court is better than a penny in purse. [谚]与其囊中有钱，不如朝中有人。
A friend in need is a friend indeed. [谚]患难之交，才是真朋友。
A friend to all is a friend to none. [谚]滥交者无友。
A friend to every body is a friend to nobody. [谚]滥交者无友。
be friends with 与...友好，跟…做朋友
make friends with 与…友好，跟…做朋友
Between friends all is common. [谚]朋友之间不分彼此。
bosom friends 心腹之交，密友，知己
close friends 心腹之交，密友，知己
great friends 心腹之交，密友，知己
sworn friends 心腹之交，密友，知己
fair-weather friend 可共安乐而不可共患难的朋友；酒肉朋友
False friends are worse than open enemies. [谚]虚伪的朋友比公开的敌人更坏。
keep friends with 跟...保持友好
next friend 至亲; 挚友 [律]（未成年者的）保护人, 监护人 [律]）未成年者或己婚妇女的）诉讼代理人
Old friends and old wine are best. [谚]陈酒味醇, 老友情深。
kiss and be friends 和解，言归于好
make friends again 言归于好，重修旧好
make friends of 和…为友；与…友好
part friends 不伤感情地分手
The best friends must part. [谚]朋友虽好总有一别。
The falling out of friends is the renewal of love. [谚]朋友越吵越亲热。
Friend s are thieves of time. [谚]朋友是盗窃时间的贼（指交朋友浪费时间）。
Friend s may meet, but mountains never greet. [谚]山与山不相遇，人与人总相逢。

定义格式（c++）：
friend <返回类型> <函数名> (<参数列表>);
问题提出
我们已知道类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员，程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员，但是如果将数据成员都定义为公有的，这又破坏了隐藏的特性。另外，应该看到在某些情况下，特别是在对某些成员函数多次调用时，由于参数传递，类型检查和安全性检查等都需要时间开销，而影响程序的运行效率。
为了解决上述问题，提出一种使用友元的方案。友元是一种定义在类外部的普通函数，但它需要在类体内进行说明，为了与该类的成员函数加以区别，在说明时前面加以关键字friend。友元不是成员函数，但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率，但是，它破坏了类的封装性和隐藏性，使得非成员函数可以访问类的私有成员。
友元可以是一个函数，该函数被称为友元函数；友元也可以是一个类，该类被称为友元类。
友元函数
友元函数的特点是能够访问类中的私有成员的非成员函数。友元函数从语法上看，它与普通函数一样，即在定义上和调用上与普通函数一样。下面举一例子说明友元函数的应用。
#include <iostream>
#include <math.h>
using namespace std;
class Point
{
public:
Point(double xx, double yy) { x=xx; y=yy; }
void Getxy();
friend double Distance(Point &a, Point &b);
private:
double x, y;
};
void Point::Getxy()
{
cout<<"("<<x<<","<<y<<")"<<endl;
}
double Distance(Point &a, Point &b)
{
double dx = a.x - b.x;
double dy = a.y - b.y;
return sqrt(dx*dx+dy*dy);
}
void main()
{
Point p1(3.0, 4.0), p2(6.0, 8.0);
p1.Getxy();
p2.Getxy();
double d = Distance(p1, p2);
cout<<"Distance is "<<d<<endl;
}
说明：在该程序中的Point类中说明了一个友元函数Distance()，它在说明时前边加friend关键字，标识它不是成员函数，而是友元函数。它的定义方法与普通函数定义一样，而不同于成员函数的定义，因为它不需要指出所属的类。但是，它可以引用类中的私有成员，函数体中a.x，b.x，a.y，b.y都是类的私有成员，它们是通过对象引用的。在调用友元函数时，也是同普通函数的调用一样，不要像成员函数那样调用。本例中，p1.Getxy()和p2.Getxy()这是成员函数的调用，要用对象来表示。而Distance(p1, p2)是友元函数的调用，它直接调用，不需要对象表示，它的参数是对象。(该程序的功能是已知两点坐标，求出两点的距离。)
友元类
友元除了前面讲过的函数以外，友元还可以是类，即一个类可以作另一个类的友元。当一个类作为另一个类的友元时，这就意味着这个类的所有成员函数都是另一个类的友元函数。
例如，以下语句说明类B是类A的友元类：
class A
{
…
public:
friend class B;
…
};
经过以上说明后，类B的所有成员函数都是类A的友元函数，能存取类A的私有成员和保护成员。
使用友元类时注意：
(1) 友元关系不能被继承。 
(2) 友元关系是单向的，不具有交换性。若类B是类A的友元，类A不一定是类B的友元，要看在类中是否有相应的声明。
(3) 友元关系不具有传递性。若类B是类A的友元，类C是B的友元，类C不一定是类A的友元，同样要看类中是否有相应的申明 

歌曲介绍
歌手：滨崎步
所属专辑：《A Song For ××》
发行时间：0000-00-00
所属公司：艾回
歌词
Oh Friend My Friend
心に咲いた花は
My Friend
空にかざす云は桜色に染まり
甦る记忆と感情
幼い顷君と歩いた道今でも
変わらず仆の胸缔めつけるよ
不器用だったあの顷はどうしようもなくて
想い伝えられないまま过ぎゆく时に埋もれてく
君と描いた思い出は昨日のことのように
Oh Friend My Friend
手を伸ばしたら
Oh Friend My Friend
届きそうだけれど
My Friend
过ぎ去った季节かすかな面影は
少しずつ远ざかってゆく
强がってうまく言えずにいたけれど
舞い落ちる花片も恨めしく思ってた
君が选ぶ道は何処へ続いてるんだろう
仆だけまだ前に进めなくて
そんなんじゃ駄目だって君に背中を押されて
踏み出した世界はきっと间违えてなんかないよね
それぞれの道がいつか重なればなんて
Oh Friend My Friend
愿い舍てられずに
Oh Friend My Friend
今も胸の奥で
My Friend
FRIEND
TV动画《蓝龙》OP
编曲：koma2 kaz
作曲：T2ya
作词：橘庆太
歌手：橘庆太
By 仆のこえ
いつか仆らがたどり着く场所があるのなら
またあの时と同じような季节を木漏れ日の中で
伝えきれずにいた想い今なら言えるよ
Oh Friend My Friend
风が香るほどに
Oh Friend My Friend
心に咲いた花は
My Friend