cpp
1#include <memory>2#include <iostream>34class Buffer {5public:6 Buffer(std::size_t size) : data_(new char[size]) {}7 ~Buffer() { delete[] data_; }8private:9 char* data_;10};1112int main() {13 auto buf = std::make_unique<Buffer>(1024);14 std::cout << "allocated" << std::endl;15 return 0;16}关键点说明
- make_unique 避免手写 new,异常发生时也不会泄漏。
- 不要用同一个裸指针构造多个智能指针。