# C++ 智能指针 :

# std::auto_ptr<T> (C++ 11 已弃用)

# std::shared_ptr<T> 同一时间能有多个智能指针对象指向引用对象。


# std::unique_ptr<T> 同一时间只能有一个智能指针对象指向引用对象。

可以通过std::move()转移到另一个智能指针对象

# std::make_unique<T>()

返回 std::unique_ptr<T>类型

# std::make_shared<T>()

返回 std::shared_ptr<T>类型

# C++ 对象初始化

# new 初始化

  • 使用 new 关键字进行初始化的对象是在堆上分配
  • 使用 new 关键字创建的对象返回的是对象地址,必须由一个类指针接收
  • 使用 new 关键字创建的对象必须使用 delete 手动清除缓存

# 不使用 new 初始化

1
2
int a = new int(1);
int b(1);

不是使用 new 进行初始化的方法上面两种,这种初始化是在栈上分配的,由于栈上内存是系统进行管理,所以会自行对空间进行回收。

### 虚函数

对象中定义的虚函数需要赋值为0,不然会有编译错误