关于C++作用域

关于C++作用域,第1张

《C++ Primer Plus》中的作用域的定义与《C++ Primer》中的有一些差别,这差别导致对其它概念的阐述不同,理解方式也将会不一样,有必要进行区分。

《C++ Primer Plus》是这样定义的:作用域描述了名称在文件(翻译单元)的多大范围可见。我一般记为,描述名称的可见范围(有效范围)。一开始觉得这样很好,挺好理解的。后面他将作用域分为了几类,例如局部(块)作用域:从声明位置到其所在的代码块结尾。

 但在对单定义规则、局部屏蔽、链接性进行阐述时,它经常是认为包括声明语句上方区域在内的整个代码块或文件。因为当你使用嵌套作用域、扩展作用域时以“从声明位置到其所在的代码块结尾”的定义为基础就不是很好解释与说明。所以不能就记为我认为的“描述名称的可见范围(有效范围)”。但我认为本书的定义也比较容易出歧义或难以理解。

《C++ Primer》则对作用域的定义就抽象出来,即是程序的一部分,在其中名字有其特定的含义。既然之前对作用域的定义以字面意思出发,那为什么不把可见范围(有效范围)就用有效区域的概念呢。这样有效区域就被定义为:始于名字的声明语句,以声明语句所在的作用域末端为结束。我综合下,记为,从声明位置到其所在的作用域结尾。

这下任务就来了,如何以上述新的定义回顾之前以旧定义所阐述的其它相关概念。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/2990722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存