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

杭州网站建设杭州手机网站建设初学者wordpress商城模板

杭州网站建设杭州手机网站建设,初学者wordpress商城模板,wordpress 远程数据库,wordpress后台字体使用定位new创建对象#xff0c;显式调用析构函数是必须的#xff0c;这是析构函数必须被显式调用的少数情形之一#xff01;#xff0c; 另有一点#xff01;#xff01;#xff01;析构函数的调用必须与对象的构造顺序相反#xff01;切记#xff01;#xff01;显式调用析构函数是必须的这是析构函数必须被显式调用的少数情形之一 另有一点析构函数的调用必须与对象的构造顺序相反切记定位new的使用格式 1.new (place_address) type 2.new (palce_address) type (initializer_list) 其中place_address必须是一个指针initializer_list是type类型的初始化列表 使用请看下面的代码例程 #include iostream #include string #include new using namespace std;const int BUF 512; class JustTesting { private:string words;int number; public:JustTesting(const string s Just Testing, int n 0) {words s;number n;cout words constructed endl;}~JustTesting() { cout words destroyed! endl; }void Show()const { cout words , number endl; } };int main() {char* buffer new char[BUF];//常规new在堆上申请空间cout \nMemory block address:\n buffer: (void*)buffer \n****************************************\n;JustTesting* pc1, * pc2;pc1 new (buffer) JustTesting;//定位newpc2 new JustTesting(Heap1, 20);//常规newcout \nMemory contents: endl;cout pc1 : ;pc1-Show();cout pc2 : ;pc2-Show();cout ----------------------------------------\n;JustTesting* pc3, * pc4;pc3 new (buffer)JustTesting(Bad Idea, 6);//定位newpc4 new JustTesting(Heap2, 10);//常规newcout \nMemory contents: endl;cout pc3 : ;pc3-Show();cout pc4 : ;pc4-Show();delete pc2;//释放pc2申请的空间delete pc4;//释放pc4申请的空间delete[] buffer;//释放buffer指向的空间,但是这里并没有调用其析构函数//pc3-~JustTesting(); //需要显式调用构造函数//pc1-~JustTesting();cout Done! endl;return 0; } 执行结果如下: 结果分析  1.使用定位new创建的对象的地址与内存缓冲区地址一致说明定位new并没有申请新空间而构造函数的调用说明定位new的确调用了构造函数。 2.在使用delete回收空间时可以发现并未回收pc1与pc3其原因在于pc1与pc3指向的对象位于内存缓冲区该空间并不是定位new申请而是常规new申请的因此我们需要delete[]回收内存缓冲区而不是delete pc1与delete pc3 3.pc1与pc3一致说明第一个对象被第三个覆盖显然如果类动态地为其成员分配内存这将引发问题所以当我们使用定位new创建对象必须自己保证不会覆盖任何不想丢失的数据就这个例程而言避免覆盖最简单的做法如下pc1 new (buffer) JustTesting;pc3 new (buffer sizeof(JustTesting)) JustTesting(Better Idea!,6); 4.delete[] buffer并未引发对象的析构虽然对象1及3的空间被回收但对象1与3并未析构这一点将时刻提醒我们使用定位new需要自己显式调用析构函数完成对象的析构但该析构并不能通过delete pc1或delete pc3实现因为delete与定位new不能配合使用否则会引发运行时错误只能通过显式析构如下pc3-~JustTesting();pc1-~JustTesting();
http://www.hkea.cn/news/14585811/

相关文章:

  • discuz图片网站模板游戏网站开发推广计划书
  • 企业网站开发时间长春网站制作培训
  • 至高建设集团 网站商城网站wordpress
  • 甜品店网站建设的目的山西新冠最新消息今天
  • 营销网站建设平台公司网站建设费用怎么入账
  • 加油站项目建设背景wordpress设置邮箱
  • 织梦修改网站背景颜色深圳网站建设补助
  • wordpress 地址跳转网站自动seo
  • 河北住房和建设厅官方网站ie的常用网站
  • 网站建设岗位任职资格深圳宝安区天气
  • 网站粘度计算公式北京网站营销与推广
  • 西安做网站的价格济南网络公司工资排名
  • 怎么做网站呀电商网站建设论文
  • 大兴模版网站建设哪家好自己如何建设个网站
  • 手机网站推广法常德网站建设案例教程
  • 南昌市会做网站有哪几家成免费crm特色学生版的特点
  • 服装网站建设前景分析关于网站建设的求职意向
  • 单页面销售信网站赚钱系统西安网站建设公司
  • 想要网站导航推广页网站推广优化是什么意思
  • 网站安全查询系统深圳网站建设公司乐云seo598
  • 织梦网站选空间网页翻译软件哪个好用
  • 网站开发图书管理系统报告摘要wordpress改变访问目录结构
  • 漳州网站建设哪家好免费网络课程教学平台
  • 制作一个景点的网站引流效果最好的平台
  • 7k网站怎么做wordpress中文标签打不开
  • 强军网网站建设俄语网站设计
  • 杭州网站制作平台公司网站建设都用什么软件
  • 武昌网站建设的公司湛江建站公司模板
  • 网站关键词优化方法阿里云网站建设 部署与发布
  • 网站架构图一般包括什么想学网站设计