《c++语言导学》——1.6 作用域和生命周期
2023-09-11 14:19:12 时间
本节书摘来自华章计算机《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节)创建的对象。例如:
"
我们必须先构建(初始化)对象,然后才能使用它,对象在作用域的末尾被销毁。对于命名空间对象来说,它的销毁点在整个程序的末尾。对于成员对象来说,它的销毁点依赖于它所属对象的销毁点。用new创建的对象一直“存活”到delete(见4.2.2节)销毁了它为止。
相关文章
- C/C++的const区别
- C/C++语言函数参数里的“...”作用,va_list的使用(stdarg.h)
- C++一些基本数据结构:字面常量、符号常量、枚举常量
- [c++菜鸟]《Accelerate C++》读书笔记
- 【转】C++ 11 并发指南一(C++ 11 多线程初探)
- 28 C++ -this指针
- 56 C++ - 模板概论
- 《C++ Concurrency in Action》中文版
- 《C++程序设计教程(第3版)》——第1章,第1节计算机语言与程序
- 《C++入门经典(第6版)》——1.5 问与答
- 《C++覆辙录》——1.9:使用糟糕的语言
- 《C++面向对象高效编程(第2版)》——1.4 理解消息、方法和实例变量
- 【C++】关于C++模板的分离编译问题
- 基于 C++ 语言实现 A算法的求解八数码问题的程序【100010703】
- C 与 C++ 谁的效率高,为什么?(结论是,两个不同层次的语言不应该相互比较,非要比较的话,是不同情况下各有快慢)
- 《c++语言导学》——1.7 常量
- 《c++语言导学》——2.3 类
- 《c++语言导学》——2.5 枚举
- 《c++语言导学》——第3章 模 块 化 3.1 引言
- C++定义错误码类
- c++/c语言编译之后的exe文件应该如何运行-解决方法(实现应用)
- C++语言出现的bug