Effective C++之条款28:避免返回handles指向对象内部成分

声明:

  1. 文中内容收集整理自《Effective C++(中文版)第三版》,版权归原书所有。
  2. 本内容在作者现有能力的基础上有所删减,另加入部分作者自己的理解,有纰漏之处敬请指正。

条款28:避免返回handles指向对象内部成分

Avoid returning “handles” to object internals.

如果const成员函数传出一个reference,该reference所指数据与对象自身有关联,而它又被存储于对象之外,囊额这个函数的调用者可以修改那笔数据。

references、指针和迭代器通通都是所谓的handles(号码牌,用来取得某个对象),而返回一个“代表对象内部数据”的handle,随之而来的便是“降低对象封装性”的风险。同时,他也可能导致“虽然调用const成员函数却造成对象状态被改变”。

另外,也绝不可以令成员函数返回一个指针指向“访问级别较低”的成员函数。

请记住:
避免返回handles(包括references、指针、迭代器)指向对象内部。遵守这个条款可增加封装性,帮助const成员函数行为像个const,并将发生“虚吊号码牌”的可能性降至最低。

猜你喜欢

转载自blog.csdn.net/longmenshenhua/article/details/89081946
今日推荐