《c++语言导学》——1.6 作用域和生命周期

简介:

本节书摘来自华章计算机《c++语言导学》一书中的第1章,第1.6节,[美] 本贾尼·斯特劳斯特卢普 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.6 作用域和生命周期

声明语句把一个名字引入它的作用域中:

  • 局部作用域(local scope):声明在函数(见1.4节)或者lambda(见5.5节)内的名字称为局部名字(local name)。局部名字的作用域从声明它的地方开始,到声明语句所在的块的末尾为止。块(block)的边界用花括号{ }表示。函数参数的名字也属于局部名字。
  • 类作用域(class scope):如果一个名字定义在类(见2.2节,2.3节,第4章)的内部,同时位于任何函数(见1.4节)、lambda(见5.5节)和enum class(见2.5节)的外部,则我们把这个名字称为成员名字(member name)或者类成员名字(class member name)。成员名字的作用域从它的括起声明的左侧花括号{开始,到该声明结束为止。
  • 命名空间作用域(namespace scope):如果一个名字定义在命名空间(见3.3节)的内部,同时位于任何函数、lambda(见5.5节)、类(见2.2节,2.3节,第4章)和enum class(见2.5节)的外部,则我们把这个名字称为命名空间成员名字(namespace member name)。它的作用域从声明它的地方开始,到命名空间结束为止。

声明在所有结构之外的名字称为全局名字(global name),我们说它位于全局作用域(global namespace)中。
某些对象也可以没有名字,比如临时对象或者用new(见4.2.2节)创建的对象。例如:


<a href=https://yqfile.alicdn.com/b122dc93c0b2a0a06034da343fc2c7332b3759b5.png
" >

我们必须先构建(初始化)对象,然后才能使用它,对象在作用域的末尾被销毁。对于命名空间对象来说,它的销毁点在整个程序的末尾。对于成员对象来说,它的销毁点依赖于它所属对象的销毁点。用new创建的对象一直“存活”到delete(见4.2.2节)销毁了它为止。
相关文章
|
1月前
|
编译器 C++
C++ 双冒号::开头的语法,::变量名,获取全局作用域变量
C++ 双冒号::开头的语法,::变量名,获取全局作用域变量
17 0
|
9天前
|
缓存 编译器 API
NumPy与其他语言(如C/C++)的接口实践
【4月更文挑战第17天】本文介绍了NumPy与C/C++的接口实践,包括Python与C/C++交互基础、NumPy的C API和Cython的使用。通过案例展示了如何将C++函数与NumPy数组结合,强调了内存管理、类型匹配、错误处理和性能优化的最佳实践。掌握这些技能对于跨语言交互和集成至关重要。
|
18天前
|
程序员 C++
C++语言模板学习应用案例
C++模板实现通用代码,以适应多种数据类型。示例展示了一个计算两数之和的模板函数`add&lt;T&gt;`,可处理整数和浮点数。在`main`函数中,展示了对`add`模板的调用,分别计算整数和浮点数的和,输出结果。
12 2
|
29天前
|
存储 编译器 C语言
【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)
【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)
|
1月前
|
Java API 开发工具
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(三)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
30 0
|
1月前
|
Java 数据处理 数据库
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(二)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
34 0
|
1月前
|
存储 算法 Java
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用(一)
【软件设计师备考 专题 】C、C++、Java、Visual Basic、Visual C++等语言的基础知识和应用
34 0
|
1月前
|
算法 编译器 C++
【C++ 函数 基本教程 第二篇 】深度剖析C++:作用域与函数查找机制
【C++ 函数 基本教程 第二篇 】深度剖析C++:作用域与函数查找机制
32 0
|
1月前
|
存储 开发框架 安全
【C++ 线程】深入理解C++线程管理:从对象生命周期到线程安全
【C++ 线程】深入理解C++线程管理:从对象生命周期到线程安全
88 0
|
1月前
|
存储 安全 IDE
C/C++ 作用域,生命周期,执行线程的概念
C/C++ 作用域,生命周期,执行线程的概念
18 2