C++11的5个实用特性
作者:网络转载 发布时间:[ 2015/12/8 11:40:49 ] 推荐标签:测试开发技术 编程语言
Unique 指针
Unique 指针是 C++11 版本的智能指针类。
一旦你用 unique_ptr 关键字定义了一个对象,那么下列事件只要发生一个,对象会被销毁并释放内存:
unique_ptr 管理的对象被销毁。
unique_ptr 管理的对象通过赋值操作符指向另一个指针,或调用了reset()方法。
对于不想了解太多细节的用户来说,这意味着如果你使用了 unique 指针的语义,那么在跳出作用域之前,你不用手动回收对象的内存了。
以前,我们需要这么写代码:
YourObject * obj = new YourObject();
然后在程序的后你一定要记得释放内存:
delete(obj);
否则你可造成内存泄露了。而现在,
std::unique_ptr<YourObject> obj(new YourObject());
当 obj 跳出作用域范围之外的时候,内存将会被自动回收。
static_assert
static_assert 简单说是一个在编译期执行的断言。例如,你可以这么做:
static_assert(sizeof(unsigned int) * CHAR_BIT == 32);
假设由于系统的原因造成了上述的逻辑判断的失败,那么 static_assert 会断言失败。
它的另一种用途,是和 C++ 特征类型搭配使用。比如:
static_assert(std::is_pod<yourstruct>::value, "Not a pod struct!");
POD 是指“简单数据”(Plain Old Data)结构,也是说,它是一个的类(你可以用struct关键字定义,也可以用class关键字定义),但没有构造函数,析构函数和虚成员函数。所以,如果一个愚蠢的菜鸟程序员企图给这种类型增加构造函数的话,static_assert 会在编译的时候阻止这种行为,并报错。这对代码维护来说可是非常有用的。
当然 C++ 还有很多有用的特性,我希望在以后的文章中能给大家介绍更多。谢谢大家的关注!
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南