● 域 (scope) 表示了程序中的一部分,其中的名称有唯一的含义
    ● 全局域( global scope ):程序最外围的域,其中定义的是全局对象
    ● 块域( block scope ),使用大括号所限定的域,其中定义的是局部对象
    ● 还存在其它的域:类域,名字空间域……
    ● 域可以嵌套,嵌套域中定义的名称可以隐藏外部域中定义的名称

    1. #include <iostream>
    2. int x = 4;
    3. int main()
    4. {
    5. int x = 3;
    6. {
    7. int x = 5;
    8. std::cout << x << std::endl;
    9. }
    10. std::cout << x << std::endl;
    11. }

    image.png

    ● 对象的生命周期起始于被初始化的时刻,终止于被销毁的时刻
    ● 通常来说
    – 全局对象的生命周期是整个程序的运行期间
    – 局部对象生命周期起源于对象的初始化位置,终止于所在域被执行完成

    1. #include <iostream>
    2. int x = 4;
    3. int main()
    4. {
    5. int x = 3;
    6. {
    7. std::cout << x << std::endl;
    8. int x = 5;
    9. }
    10. std::cout << x << std::endl;
    11. }

    image.png