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

广州邮局网站广州安全教育平台应用

广州邮局网站,广州安全教育平台应用,江苏科技大学新校区建设网站,怎么样才能申请网址目录 一.程序启动所关联的内存分区 二.动态内存的申请和释放 三.将RAII思想融入代码 四.RAII思想的简单应用 一.程序启动所关联的内存分区 .dll文件是Dynamic Link Library#xff08;动态链接库#xff09;文件的缩写#xff0c;它是一种共享库文件#xff0c;包含…目录 一.程序启动所关联的内存分区 二.动态内存的申请和释放 三.将RAII思想融入代码 四.RAII思想的简单应用  一.程序启动所关联的内存分区 .dll文件是Dynamic Link Library动态链接库文件的缩写它是一种共享库文件包含了程序所需的代码和数据。与静态链接库不同动态链接库可以在程序运行时动态加载使得程序的内存占用更小同时也方便了程序的更新和维护。 程序启动时系统会将exe主程序依赖的所有dill库文件加载到进程的代码段的内存区中这些文件里存放的是可执行的二进制机器码也就是汇编代码。 等到所有的dill模块都加载完毕后才将exe主程序加载到进程空间之后启动C/C运行时库然后给全局变量分配内存并执行全局变量的初始化操作此处对应的是全局内存区然后才会进入到main函数程序启动。 当执行函数时在当前线程栈内存上给函数的局部变量申请栈内存如果执行的是malloc或者new的代码申请的就是堆内存。 二.动态内存的申请和释放 在C/C中动态申请的内存是需要开发人员自己去管理的即使用完毕后需要手动去释放否则就会造成内存泄漏产生严重bug。 三.C中使用new去申请内存用delete来释放内存 C在支持malloc和free动态申请内存的基础上新增new和delete两种方式new主要是用来new出一个C对象来也就是在堆内存上申请一个C对象的内存不用时调用delete释放掉。 new一个C对象时不仅会在堆上申请内存还会调用该对象的构造函数具体来说是先申请内存再调用构造函数。 同样的delete时会调用该对象的析构函数具体来说是先调用析构函数然后释放掉对象所占堆内存。 需要注意的是new出来的对象不会自动调用析构函数需要我们手动去delete。 三.将RAII思想融入代码 这样一来如果程序很复杂那delete就会很繁琐并且容易出错所以我们编程时就需要融入RAII(Resource Acquistion Is Intialization)思想。 当我们在main函数中声明一个局部对象的时候会自动调用构造函数进行对象的初始化当整个main函数执行完成后自动调用析构函数来销毁对象整个过程无需人工介入由操作系统自动完成于是很自然联想到当我们在使用资源的时候在构造函数中进行初始化在析构函数中进行销毁。整个RAII过程我总结四个步骤 a.设计一个类封装资源 b.在构造函数中初始化 c.在析构函数中执行销毁操作 d.使用时声明一个该对象的类 下面是基于RAII思想实现的一个简单的互斥锁。 四.RAII思想的简单应用 #includepthread.h #includeiostreamclass Mutex { private:/* data */pthread_mutex_t *_mutex; public:Mutex(pthread_mutex_t *mutex);~Mutex();void Lock(){std::coutInitialize Successstd::endl;pthread_mutex_lock(_mutex);}void UnLock(){std::coutDelete Successstd::endl;pthread_mutex_unlock(_mutex);} };Mutex::Mutex(pthread_mutex_t* mutex) :_mutex(mutex) {}Mutex::~Mutex() {}class LockGuard { private:Mutex _mutex; public:LockGuard(pthread_mutex_t *mutex);~LockGuard(); };LockGuard::LockGuard(pthread_mutex_t* mutex) :_mutex(mutex) {_mutex.Lock(); }LockGuard::~LockGuard() {_mutex.UnLock(); }int main() {pthread_mutex_t mutex;LockGuard lockGuard(mutex);return 0; }运行代码自动调用构造函数和析构函数不用我们手动删除非常方便。  需要注意Delete Success是在return 0之后才打印的。
http://www.dnsts.com.cn/news/166800.html

相关文章:

  • 网站登录界面 psd网站开发成本最低多少钱
  • 深圳去聋哑做义工申请网站新媒体培训
  • 车网站建设策划书打鱼跟电子游戏网站怎么做
  • 凡科建站登陆牛商网做网站多少钱
  • 国企网站开发海口免费网站建站模板
  • 成都都江堰网站建设wordpress keywords 用逗号 区分关键字
  • 做高端网站建设app企业微信下载
  • 别人是怎么建设网站的沧州房产信息网
  • 表白网站在线制作软件网站跳出率因素
  • 手机网站给一个自己建设网站的利弊
  • 如何在外管局网站做付汇延期十大wordpress收费主题
  • 网站购买广告位常见的网站首页布局
  • 广西和住房城乡建设厅网站首页搜索引擎营销的案例有哪些
  • asp网站相册个人网站建设域名
  • 农业网站开发免费建网站广告语
  • 司法局门户网站建设该报告wordpress和dz哪个好
  • 温州做模具的网站怎样登录柳州建设网站
  • 网站后台数据成都装修网站制作多少钱
  • 如何在网上做网站wordpress 微博评论插件
  • 广西区建设厅网站工业设计作品
  • 济南制作网站有哪些东莞 建网站
  • 建站公司的服务内容手机网站建设服务器
  • 专业网站建设常州北京营销型网站案例
  • app网站开发学习主机公园安装wordpress要多久
  • 唐山网站建设唐山做网站建立自己的网站软件有
  • 游戏网站建设网wordpress 3.2
  • 创建网站的目的泰安房产查询系统
  • 交流网站模版新乐市建设银行网站
  • 做新网站怎样提交360广州公司注册无地址
  • 2017国外优秀网站模版代理公司注册网站