请输入您要查询的百科知识:

 

词条 Friend
释义
1 英语词汇

词典解释

名词 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. [谚]山与山不相遇,人与人总相逢。

2 友元函数

定义格式(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的友元,同样要看类中是否有相应的申明

3 玉置浩二歌曲《Friend》

Friend

作词者名 松井五郎

作曲者名 玉置浩二

さよならだけ

sayonara dake

言えないまま

ie nai mama

きみの影の中に

kimi no kage no naka ni

いま涙がおちてゆく

ima namida ga ochite yuku

つめたくなる

tsume taku naru

指髪声

yubi kami koe

ふたり暮らしてきた

futari kurashite kita

香りさえが 消えてゆく

kaori saega kiete yuku

もう Friend

mou

心から Friend

kokoro kara

みつめても Friend

mitsume temo

悲しくなる

kanashi ku naru

想い出には

sou i de ni wa

できないから

deki nai kara

梦がさめてもまだ

yume ka same temo mada

梦みるひと忘れない

yume miru hito wasure nai

もう Friend

mou

きれいだよ Friend

kirei dayo

このままで Friend

kono mamade

やさしく

yasashiku

もう Friend

mou

心から Friend

kokoro kara

いつまでも Friend

itsu mademo

今日から

koyou kara

Friend

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/22 7:33:40