Robin Chow's C++ Blog

 

[导入]Exception C++ 之 12

Koenig Lookup:
如果你给函数提供一个 class 类型的实参,那么在名称搜索时,编译器将认为包含实参类型的命名空间中的同名函数的可选函数。
接口原则:
对于一个类X,所有的函数,包括自由函数,只要同时满足
  • “提到”X,并且
  • 与X“同期提供”
就是X的逻辑组成部分,因为它们组成了X的接口。

接口原则与 Koenig lookup 的行为相同,因为 Koenig lookup 的行为正是建立在接口原则的基础上的。
小结:
  1. 接口原则:对于 class X,所有的函数,包括自由函数,只要同时满足(a)“提及”X,(b)与 X“同期提供”,那么它就是X的逻辑组成部分,因为它们是 X 的接口的一部分。
  2. 因此,成员和非成员函数都是一个 class 的逻辑组成部分。只不过成员函数比非成员函数有更强的关联关系。
  3. 在接口原则中,对“同期提供”的最有用的解释是“出现在相同的头文件和/或命名空间中”。如果函数与 class 出现在相同的头文件中,在依赖性分析时,它是此 class 的组成部分。如果函数与类出现在相同的命名空间中,在对象引用和名称搜索时,它是此 class 的组成部分。



文章来源:http://my.donews.com/robinchow/2007/01/14/tlcchrdcrthuzvbqdhrczbijwughfpwzbybi/

posted on 2007-10-23 20:51 Robin Chow 阅读(71) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜