- 博客(4)
- 收藏
- 关注
原创 右值引用
右值和左值 C++ 中右值概念是:只能出现在 operator= 右侧的表达式,而左值的概念则是:可能出现在 operator= 左边的的表达式。官方给的概念比较容易理解,但是我们在这里还是要做两点解释。 首先,对于左值官方的定义是可能出现在 operator=左边的表达式,因此我们要注意左值是既可以出现在 operator= 左边,也可以出现在 operator= 的右边,例如: //在 =...
2020-03-05 07:32:49 125
原创 移动语义
在《右值引用》中我们介绍了右值引用的语法和一些注意事项,而本文所介绍的移动语义与右值引用密不可分。 不必要的深拷贝 在 C++ 中如果类中含有堆内存,就需要类的编写者提供深拷贝的拷贝构造函数,如果使用默认构造函数(浅拷贝),会导致堆内存的重复删除(或者说指针悬挂)。但是,在很多情况下是深拷贝又是不必要,比如下面的情况: #include using namespace std; class ...
2020-03-05 07:31:21 174
原创 默认函数的控制
“= default”和 “= deleted” C++11 标准把 “= default” 修饰的函数称为显式缺省(explicated faulted)函数,把 “= delete” 修饰的函数成为为删除函数,为了方便也将它称为显示删除函数。C++11 引入显式缺省和显式删除是为了增强对类默认函数的控制,让程序员能够更加精细地控制类默认函数。 为了更好的了解“= default”和 “= de...
2020-03-05 07:29:57 144
原创 noexcept 关键字.docx
noexcept 的基本语法 noexcept 是 C++11 为了替代 throw() 而提出的一个新的关键字,在 C++ 中使用函数异常声明列表来查看函数可能抛出的异常。比如: void func() throw (int,double); 上例就是一个函数异常声明列表,该声明指出 func 可能抛出int和 double 类型的异常。但是在实际编程中很少使用这种写法,所以这一特性在 C...
2020-03-05 07:28:47 247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人