28 避免返回handles指向对象内部成分——effective c++
2011-04-08 21:46
363 查看
这样做有两个问题:
a)
降低对象的封装性。把内部结构暴露在外面。
b)
调用const函数,但是仍然可以更改对象。
有一个办法可以解决第二个问题,即返回的handles加上一个const限制,这样就可以更改返回的对象了。
另外,也会有一个新的问题——dangling
handles(悬空的号码牌)。如果handles指向的指针已经释放,但是返回的handles却无法知道。
请记住:
避免返回handles(包括reference,指针,迭代器)指向对象内部。遵守这个条款可以增加封装性,帮助const成员函数的行为像个const,并将发生虚掉号码牌的可能性降至最低。
a)
降低对象的封装性。把内部结构暴露在外面。
b)
调用const函数,但是仍然可以更改对象。
有一个办法可以解决第二个问题,即返回的handles加上一个const限制,这样就可以更改返回的对象了。
另外,也会有一个新的问题——dangling
handles(悬空的号码牌)。如果handles指向的指针已经释放,但是返回的handles却无法知道。
请记住:
避免返回handles(包括reference,指针,迭代器)指向对象内部。遵守这个条款可以增加封装性,帮助const成员函数的行为像个const,并将发生虚掉号码牌的可能性降至最低。
相关文章推荐
- effective C++ 条款 28:避免返回handles指向对象内部成分
- Effective C++ (E3 28)笔记之避免返回指向对象内部成分的handles、浅拷贝与深拷贝的探讨
- Effective C++ -----条款28:避免返回handles指向对象内部成分
- 读书笔记《Effective C++》条款28:避免返回handles指向对象内部成分
- Effective C++ 条款28 避免返回handles指向对象内部成分
- 《Effective C++》读书笔记之item28:避免返回handles指向对象内部成分
- C++之避免返回handles指向对象内部成分(28)---《Effective C++》
- 条款28:避免返回handles指向对象内部的成分(Avoid returning "handles" to objects internals)
- effective c++避免返回handles指向对象内部成分(2)
- Effective C++:条款28:避免返回 handles 指向对象内部成员
- 条款28:避免返回handles指向对象的内部成分。
- 《Effective C++》学习笔记条款28 避免返回handls指向对象内部成分
- 条款28 避免返回handles指向对象内部成分
- 《Effective C++》item28:避免返回handles(即:Reference、指针、迭代器)指向对象内部成分
- effective c++ 避免返回handles指向对象内部成分(1)
- 条款28:避免返回handles指向对象内部成分
- 条款28:避免返回handles指向对象内部成分
- Effective C++:条款28:避免返回 handles 指向对象内部成员
- 《Effect C++》学习------条款28:避免返回handles指向对象内部成分
- [Effective C++ --028]避免返回handles指向对象内部成分