C++11中和动态数组相关的新特性有哪些

本篇内容介绍了“C++11中和动态数组相关的新特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

公司主营业务:成都网站制作、做网站、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出大英免费做网站回馈大家。

使用初始化列表初始化

可以像一般的数组一样,使用初始化列表对动态数组进行初始化,代码如下:

C++11中和动态数组相关的新特性有哪些

毕竟不是数组

之所以叫动态数组,我猜有两个原因,一个是它的内存是动态分配的,一个就是它可以像数组一样使用:

C++11中和动态数组相关的新特性有哪些

但是动态数组和数组还是有一些区别,例如编译器无法从数组名获知数组的大小信息。下面的代码就不能正确动作:

C++11中和动态数组相关的新特性有哪些

 同样地,C++11中引入的范围for也被不支持。下面的代码直接会发生编译错误:

C++11中和动态数组相关的新特性有哪些

一个有趣的例外

但是这件事有一个例外,动态申请的对象数组在释放内存是时,如果需要调用析构函数,编译器会在动态数组的前面保存动态数组的大小信息。例如下面的类:

C++11中和动态数组相关的新特性有哪些

在动态分配内存之后,可以像下面的代码一样取得数组的大小:

C++11中和动态数组相关的新特性有哪些

有一点值得注意的是,这个方法有可能依赖于编译器的实现,所以在作者不能保证在所有的编译器中都能正常动作。

“C++11中和动态数组相关的新特性有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


当前文章:C++11中和动态数组相关的新特性有哪些
转载来源:http://myzitong.com/article/pjohpd.html