C++11新特性
nullptr
nullptr1
2
3
4
5
6
7
0 \0 NULL nullptr 的差异和共同点
auto与decltype
右值引用
浅拷贝与深浅拷贝
浅拷贝 shollow copy
深拷贝 deep copy
指针成员与拷贝构造函数1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//浅拷贝
class HasPtrMem {
private:
int *intptr;
public:
HasPtrMem() :intptr(new int[100]) {}
~HasPtrMem() {
delete[] intptr;
}
};
int main(){
HasPtrMem a;
HasPtrMem b(a);
return 0
}
浅拷贝 默认拷贝构造函数是浅拷贝
main作用域结束时,依次调用 b,a的析构函数
b释放b.intptr的堆内存后,a.intptr就成为了一个 “悬挂指针”
1 | //深拷贝 |
深拷贝 调用拷贝构造函数时 会从堆中为b.intptr分配内存
移动语义和完美转发
移动构造函数