在计蒜客上学习 轮子哥的 面向对象的程序设计C++ 第二章,最后的一道题是 使用move实现Vector类。
在这一章中学习了 forward(完美转发),move(移动语义),最后一小节学习了Placment new的用法。最终按照题目要求完成了Vector类的实现,有些心得体会,自此记录于此。
前言:如果是计蒜客的同学上网搜寻资料打开这篇文章,请关闭该主题,自行完成题目,遵守《学术准则》。
分割线
==========================================================================
什么是placement new?
所谓placement new是在用户指定的内存位置构建新的对象,这个构建过程不需要额外分配内存,只需要调用对象的构造函数即可。
即是把普通new分为两步,举例来说:
1)T* it = static_cast<T*>( malloc( sizeof(T) ) );
2)new( it )T( );
分配sizeof(T)大小内存空间,地址赋给 it ,在 it 指向的空间构造 T。
更详细介绍在