Exceptional C++ Style之16
2006-03-09 16:34
344 查看
第16条 (几乎)私有
顺序,顺序。这里说的是重载三部曲——名字查找,重载决议,可访问性检查。这里写这个是因为重载决议在可访问性检查之前。所以出现可访问性问题,编译器不会因为隐式转换而通过重载避开,这里就是一个编译错误。Public和private是控制可访问性,而不是可见性,这点很重要。
对于一个私有变量来说,似乎是无法保护的,C++中 存在强大的指针,可以在知道内存布局的情况下,进行很越轨的操作。但是目前我不清楚如何对函数进行同样的控制,我不能通过对象知道成员函数的地址,也许虚 函数的指针是个契机,我没有具体尝试过,事实上,这是牛角尖的问题。具有访问权限的函数也有能力泄漏成员的指针,而把权力授权给他人。
在这个地方模板函数也是问题所在,因为可以针对模板函数进行特化,在特化函数中的得到访问授权。
顺序,顺序。这里说的是重载三部曲——名字查找,重载决议,可访问性检查。这里写这个是因为重载决议在可访问性检查之前。所以出现可访问性问题,编译器不会因为隐式转换而通过重载避开,这里就是一个编译错误。Public和private是控制可访问性,而不是可见性,这点很重要。
对于一个私有变量来说,似乎是无法保护的,C++中 存在强大的指针,可以在知道内存布局的情况下,进行很越轨的操作。但是目前我不清楚如何对函数进行同样的控制,我不能通过对象知道成员函数的地址,也许虚 函数的指针是个契机,我没有具体尝试过,事实上,这是牛角尖的问题。具有访问权限的函数也有能力泄漏成员的指针,而把权力授权给他人。
在这个地方模板函数也是问题所在,因为可以针对模板函数进行特化,在特化函数中的得到访问授权。
相关文章推荐
- 《Exceptional C++ Style》译序[已出版]
- 《Exceptional C++ Style》开放样章译稿
- Exceptional C++ Style之34
- 《Exceptional C++ Style》笔记.txt
- Exceptional C++ Style目录
- [转]《Exceptional C++ Style》开放样章译稿(第一部分)
- 《Exceptional C++ Style》译序[已出版]
- Exceptional C++ Style之25
- 读书笔记之:Exceptional C++ Style (2004) [++]
- Exceptional C++ Style 15)访问权限的使用
- Exceptional C++ Style之11
- 《Exceptional C++ Style》开放样章译稿(第一部分)
- Exceptional C++ Style 目录
- 《Exceptional C++ Style》开放样章译稿(第一部分)zz
- 《Exceptional C++ Style》开放样章译稿
- Exceptional C++ Style之12
- Exceptional C++ Style之26
- Exceptional C++ Style之35
- 《Exceptional C++ Style》译序[已出版]
- 《Exceptional C++ Style》开放样章译稿