当前位置: 首页 > news >正文

导航栏网站建站网站建站设计

导航栏网站建站,网站建站设计,淘宝运营自学教程入门,在线查询网站开发语言域与对象的生命周期 域的概念 域 (scope) 表示了程序中的一部分,其中的名称有唯一的含义 ● 全局域( global scope ):程序最外围的域,其中定义的是全局对象 ● 块域( block scope )&#xff0…

域与对象的生命周期

域的概念

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

本质特征: 表示程序中名称具有唯一含义的部分区域,可包含变量、函数、类型别名等各类名称定义
核心作用: 解决名称冲突问题,例如在不同函数中定义同名变量int x=3不会产生重复定义错误
典型示例: 全局域中的x=3与函数域中的x=3属于不同实体,编译器通过域区分其存储空间

namespace MyNS{ //名字空间域int x = 3;void fun(){ } //名字空间域中的函数using MyInt = int; //名字空间域中的类型别名
}
using MyInt = float; //全局域中定义的类型别名
int x = 3; //全局域
void func(){ //全局域中的函数int x = 3;
}
int main(){int x = 3;
}

● 域可以嵌套,嵌套域中定义的名称可以隐藏外部域中定义的名称

int x = 3;
int main(){int x = 3; //局部域变量把全局域的同名称变量隐藏了std::cout << x << '\n'; //打印局部域变量
}

对象的生命周期

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

int x = 4; //全局对象
int main(){ int x = 3; //局部对象{std::cout << x << '\n'; // x输出3int x = 5; //局部对象std::cout << x << '\n'; // x输出5}// x = 5的对象被销毁
}// x = 3的对象被销毁
#include<iostream>
using namespace std;void useLocal();
void useStaticLocal();
void useGlobal();int x{1}; //global variableint main() {cout << "global x in main is " << x << '\n'; // 1const int x{5}; //local variable to maincout << "local x in main's outer scope is " << x << '\n'; // 5{ //block starts a new scopeconst int x{7};cout << "local x in main's inner scope is " << x << '\n'; //7}//7被销毁useLocal(); //25,26useStaticLocal(); //50,51useGlobal(); //1,10useLocal(); //25,26useStaticLocal(); //51,52useGlobal(); //10,100cout << "\nlocal x in main is " << x << '\n'; //5return 0;
}void useLocal(){int x{25};cout << "\nlocal x is " << x << " on entering useLocal\n"; //25++x;cout << "local x is " << x << " on exiting useLocal\n"; //26
}void useStaticLocal(){static int x{50}; //静态x被创建cout << "\nlocal static x is " << x << " on entering useStaticLocal\n"; //50++x;cout << "local x is " << x << " on exiting useStaticLocal\n"; //51
} //静态x未被销毁void useGlobal(){cout << "\nglobal x is " << x << " on entering useGlobal\n"; //1x *= 10;cout << "global x is " << x << " on exiting useGlobal\n"; //10
}

最小特权原则,这是良好软件工程的基本准则。该原则指出:代码应仅被授予完成其指定任务所需的特权和访问权限,而不应更多
局部变量的作用域就是一个例子:当不需要时,它不应可见。
局部变量在函数被调用时创建,在函数执行期间使用,函数返回时销毁
最小特权原则通过防止代码意外(或恶意)修改不可访问的变量值,使程序更健壮,同时也使程序更易于阅读和维护。
通常,变量应声明在其需要被访问的最窄作用域中。仅在特定函数中使用的变量应声明为该函数的局部变量,而非全局变量。

下图来自:内存五大区:(栈、堆、全局静态区、常量区、代码区)(线程、函数栈、栈帧)


http://www.khdw.cn/news/2851.html

相关文章:

  • 做淘宝客优惠券网站必须是企业吗网络营销具有什么特点
  • c#web网站开发源码百度快速排名平台
  • 泰州做网站软件产品市场推广计划书
  • wordpress媒体插件长沙网站seo推广
  • 阿里巴巴网站怎么做全屏分类最近发生的热点新闻
  • 笔记本电脑做网站比较畅快常德政府网站市民留言
  • 建设网站开题报告网络营销平台有哪些
  • 罗湖网站公司数据分析师35岁以后怎么办
  • 简述营销型网站开发流程百度搜索引擎竞价排名
  • 华强北电子网站建设怀来网站seo
  • 微信商城网站搭建重庆关键词排名推广
  • 电商系统的哪家好优化课程
  • 郑州市做网站的ai智能搜索引擎
  • 甘肃网站建站系统平台中山口碑seo推广
  • 开源 网站开发框架东莞网络优化哪家好
  • 庆阳西峰北京seo百度推广
  • 网站建设及推广服务的合同范本佛山网站建设方案服务
  • 河北省建设厅网站首页枸橼酸西地那非片的作用及功效
  • 深圳创业板股票代码seo查询系统源码
  • 免费的ppt网站推荐太原网站快速排名优化
  • 网站正能量下载直接进入主页可以吗安全吗谷歌在线浏览器入口
  • 乌克兰网站建设搜索引擎营销sem包括
  • 南昌网站开发公司域名购买平台
  • 广州做进口商品的网站网站推广排名哪家公司好
  • PHP+Ajax网站开发典型实例经典软文广告案例
  • 西安网站制作公司怎么选怎么做营销
  • 中建八局第一建设公司网站软文代写新闻稿
  • 做公司网站需要有域名有服务器怎么做网站
  • 做网站 天津seo资源咨询
  • 今日的上海发布宁波百度seo点击软件