C++中的protected_C/C++语言_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

C++中的protected

作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0

本篇关键词:成员 访问Mark
黑客防线网安网讯:  当我还在用 C++ 做主要开发语言的最后几年,我已经不大用 protected 了。从箱底翻出曾经钟爱的一本书:《C++语言的设计和演化》,中文版 235 页这样记录:  “ ... Mark Linton 顺便到...

  当我还在用 C++ 做主要开发语言的最后几年我已经不大用 protected 了从箱底翻出曾经钟爱的一本书:《C++语言的设计和演化》中文版 235 页这样记录:
  “ ... Mark Linton 顺便到我的办公室来了一下,提出了一个使人印象深刻的请求,要求提供第三个控制层次,以便能支持斯坦福大学正在开发的 Interviews 库中所使用的风格我们一起揣测,创造出单词 protected 以表示类里的一些成员,...”
  “... Mark 是 Interviews 的主要设计师。他的有说服力的争辩是基于实际经验和来自真实代码的实例。...”
  “...大约五年之后,Mark 在 Interviews 里禁止了 protected 数据成员,因为它们已经变成许多程序错误的根源...”
  我不喜欢 protected ,但是今天,我偶尔用一下 C++ 时,不再有那么多洁癖。反正很难用 C++ 做出稳定的设计,那么,爱怎么用就怎么用吧。关键是别用 C++ 做特别核心的东西就成了。
  今天,碰到一个跟 protected 有关的问题,小郁闷了一下。觉得可以写写。这个倒是个基本问题,貌似以前很熟悉。毕竟很多年不碰了,对 C++ 语法有点生疏。
  小时候,我一度以为这样的代码是不合法的。
 


  因为我担心在 foo::foobar 中不能访问 f 的私有成员变量 a。
  后来我明白了,所谓私有,是针对类的,而不是具体的对象。
  但是今天碰到另一个问题,让我愣了一下。
 


  这次,在 foobar::bar 里,访问 this 的 a 成员允许,但 f 的 a 成员却被禁止了。
  因为 foo::a 对 foobar 是 protected 的,foobar 的成员函数可以访问自己的 a ,但是对于 foo 指针,就禁止了。
  想了一下,解决方案是。
 


  很坏味道。不过也不太所谓了。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15025-1.html
网站维护教程更新时间:2012-04-04 22:48:41  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer