C++编程:局部域与名字解析深度解析

需积分: 46 34 下载量 201 浏览量 更新于2024-08-09 收藏 4.25MB PDF 举报
"C++ 入门经典 中文版 第三版" 本文主要讨论的是C++编程中的一个重要概念——域和名字解析,这是编译过程中的关键环节,它决定了程序文本的含义。首先,域(Scope)指的是程序文本中的特定区域,如函数内部、复合语句等,每个区域有自己的名字空间。名字解析(Name Resolution)则是确定在程序中使用的名字(变量、函数等)的实际意义。 8.1.1 局部域是讨论的重点。局部域存在于函数定义或函数块中,每个函数都有独立的局部域,并且在函数内的复合语句或块也可以拥有自己的局部域,形成嵌套。例如,`binSearch`函数展示了两层局部域,外层是函数体,内层是`while`循环。变量的生命周期和作用范围限制在各自的局部域内,不允许在同一域内重复声明相同名字的变量。在`binSearch`函数中,`val`作为函数参数,只能在函数体内部使用,不能在外部使用。局部域的名字解析遵循“从内到外”的原则,即先查找当前域,如果没有找到,则逐层向上搜索,直到全局域,如果全局域内仍找不到,则被认为是错误的。 全局域包含所有局部域,它可以声明在整个程序中都有效的变量,如常量`notFound`。函数参数和局部变量仅在其定义域内可见。例如,在`binSearch`函数中尝试在内层局部域再次声明`val`是错误的,因为这个名字已经在外层局部域中被声明。 C++的标准化使得语言有了统一的规范,有助于编写可移植的代码,并提供了C++标准库作为基础支持。对于开发者来说,理解和掌握C++的域和名字解析规则至关重要,因为它直接影响到代码的正确性和可维护性。 本书《C++ Primer》由Stanley B. Lippman和Josée Lajoie合作完成,是C++领域的权威之作,作者们结合丰富的经验和对标准的深入理解,为读者提供了全面认识C++语言的途径。书中详细阐述了C++的关键概念和技术,帮助读者不仅理解语言本身,还能了解到C++的标准和最佳实践。对于C++初学者和有经验的开发者来说,这是一本不可多得的参考资料。