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

公司建设网站的通知书网络流量统计工具

公司建设网站的通知书,网络流量统计工具,网站建设归工商局管还是工信局管,免费下ppt课件的网站C中禁止在栈中实例化的类 栈空间通常有限。如果您要编写一个数据库类,其内部结构包含数 TB 数据,可能应该禁止在栈上实例化它,而只允许在自由存储区中创建其实例。为此,关键在于将析构函数声明为私有的: class Monst…

C++中禁止在栈中实例化的类

栈空间通常有限。如果您要编写一个数据库类,其内部结构包含数 TB 数据,可能应该禁止在栈上实例化它,而只允许在自由存储区中创建其实例。为此,关键在于将析构函数声明为私有的:

class MonsterDB
{
private:~MonsterDB(); // private destructor//... members that consume a huge amount of data
};

通过声明私有的析构函数,可禁止像下面这样创建实例:

int main()
{MonsterDB myDatabase; // compile error// … more codereturn 0;
}

上述代码试图在栈上创建实例。退栈时,将弹出栈中的所有对象,因此编译器需要在 main() 末尾调用析构函数 ~MonsterDB(),但这个析构函数是私有的,即不可用,因此上述语句将导致编译错误。
将析构函数声明为私有的并不能禁止在堆中实例化:

int main()
{MonsterDB* myDatabase = new MonsterDB(); // no error// … more codereturn 0;
}

上述代码将导致内存泄露。由于在 main 中不能调用析构函数,因此也不能调用 delete。为了解决这种问题,需要在 MonsterDB 类中提供一个销毁实例的静态公有函数(作为类成员,它能够调用析构函数),如以下示例程序所示:

#include <iostream>
using namespace std;class MonsterDB 
{
private:~MonsterDB() {}; // private destructor prevents instances on stackpublic:static void DestroyInstance(MonsterDB* pInstance){delete pInstance; // member can invoke private destructor}void DoSomething() {} // sample member method
};int main()
{MonsterDB* myDB = new MonsterDB(); // on heapmyDB->DoSomething();// uncomment next line to see compile failure // delete myDB; // private destructor cannot be invoked// use static member to release memoryMonsterDB::DestroyInstance(myDB);return 0;
}

这些代码旨在演示如何创建禁止在栈中实例化的类。为此,关键是将构造函数声明成私有的,如第 6 行所示。为分配内存,第 9~12 行的静态函数 DestroyInstance() 必不可少,因为在 main() 中不能对 myDB 调用 delete。为了验证这一点,您可取消对第 23 行的注释。

数据库类把析构函数设置为私有,只能使用new在自由储存区中创建其对象。如下代码:

class MonsterDB
{
private:~MonsterDB( ) {};
public:static void DestroyInstance(MonsterDB* pInstance){delete pInstance;}//……imagine a few other methods
};int main()
{MonsterDB* pMyDatabase = new MonsterDB();MonsterDB :: DestroyInstance(pMyDatabase);return 0;
}

该文章会更新,欢迎大家批评指正。

推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程

http://www.zhongyajixie.com/news/37891.html

相关文章:

  • wordpress漏洞扫描器网站建设网络推广seo
  • 官方网站建设 就问磐石网络专业郑州网站建设推广优化
  • 大连建网站需要多少钱怎么在线上推广自己的产品
  • 广州市口碑好的网站制作排名seo优化排名易下拉效率
  • 南京做网站哪家最好百度投广告怎么收费
  • 进行公司网站建设方案360优化大师官方下载手机
  • 1网站建设网站推广优化c重庆
  • 在线视频制作网站上海seo服务
  • wordpress建立文章页面廊坊百度推广seo
  • 免费网站建设福州新媒体营销推广方案
  • 网站建设的后台登录互联网产品运营推广方案
  • 网站左下角留言板html如何找推广平台
  • 代刷网站只做软件刷排名seo软件
  • 做钓鱼网站教程视频教程新东方考研班收费价格表
  • wordpress 珠宝长沙做优化的公司
  • 一个可以做行程的网站台州百度推广优化
  • 山西省普通高考考生网上服务平台长沙网站优化
  • 靠谱做网站苹果cms永久免费全能建站程序
  • apache 多网站本地推荐本地推荐
  • seo学途论坛网深圳seo论坛
  • 建设银行+贷款+查询+网站色盲测试图数字
  • 网站模块图片百度优化怎么做
  • 网站推广只能使用在线手段进行。百度经验首页官网
  • 自己做的网站如何上传文件自媒体推广渠道
  • 网站历史快照app推广方法及技巧
  • 以人为本网站建设空间出租2022年大事热点新闻
  • 中国建设银行招聘官网站营销策划思路及方案
  • 证书在线制作生成器seo如何优化网站推广
  • 什么叫营销型网站百度知道合伙人
  • 小说网站80电子书怎么做企业文化标语