一看到friend这个词,首先让人想到如果A是B的friend,那么B也是A的friend.
可实际不是如此。郑莉等<C++程序设计教程>(机械工业出版社) P94,关于友元类:
1.友元关系不具交换性。即友元具单向性
2.友元关系不具传递性。即若A是B的友元,B是C的友元,并不表示A是C的友元。
例如class A
{
...
};
class B
{
...
friend class A;
...
}
以上代码只是说明了 class A的成员函数可以访class B的数据成员。反过来不是。美国人真奇怪: 你是我的朋友,我反倒不一定是你的朋友。朋友只是用来"单方面利用"的么?
建议C++标准委员会 干脆以后将friend改为authorize(授权),呵呵。以此不要玷污"friend"一词。请大家谈谈关于友元(friend)的理解。谢谢。
可实际不是如此。郑莉等<C++程序设计教程>(机械工业出版社) P94,关于友元类:
1.友元关系不具交换性。即友元具单向性
2.友元关系不具传递性。即若A是B的友元,B是C的友元,并不表示A是C的友元。
例如class A
{
...
};
class B
{
...
friend class A;
...
}
以上代码只是说明了 class A的成员函数可以访class B的数据成员。反过来不是。美国人真奇怪: 你是我的朋友,我反倒不一定是你的朋友。朋友只是用来"单方面利用"的么?
建议C++标准委员会 干脆以后将friend改为authorize(授权),呵呵。以此不要玷污"friend"一词。请大家谈谈关于友元(friend)的理解。谢谢。
解决方案 »
- 新手入门,请教关于BITMAOPINFO的问题
- 哪位大侠知道怎么得到字符串的字符数(不是字节数)(50)
- 求教:关于进程列表显示的问题
- 再次求助关于MSChart控件的使用
- 由C到VC应该看什么书好入门呢?高分送
- 怎么把单文档视图界面编程自己的对话框界面?
- 怎样自己写一个微型的debuger?
- 请问如何按位操作从CreateDIBSection 获得的BMP指针?
- [求助]如何实现这种消息提示框?
- 请问下拉控件的使用(比较简单)?
- 使用了Xtreme的MenuBar之后,我用GetMenu得不到主菜单对象了…………
- 高分求助,如何实现,在VC中嵌入的flash动画上单击鼠标右键时不出现弹出菜单!
B:A可不一定是我的朋友哦...
A有一辆宝马车,A可以宣布:B是我的朋友,他可以使用我的宝马车;
但B不能这样说:A是我的朋友,我可以使用他的宝马车
如果要允许B访问A的私有成员,那么应该应该让A来声明B是friend,B自己声明是没有用的
class A是嫖客,
class B是妓女。
B说,我是A的friend,这意味着A可以访问我B的"私有成员"----为了声明这一点,B在自己身上写下了"friend class A"字样。------但是A却拒绝说"我是B的friend"!(why?)以上笑话版权没有,翻版不究。纯属为加强学习印象而编的笑话,希望版主不要删贴。