C++智能指针浅析

前言

做为一个程序员,遇到再多的问题都不是问题,唯一的问题是你解决了这个问题没有

小米电面的时候被问到智能指针的问题,对于这个有点印象,往指针方向去想,但怎么也想不起来是什么东西。

简介

智能指针实际上是一个类,而且还是一个模板类,由于重载了*,->这两个运算符,使它在操作上像一个指针而已。


简单例子

#include
#include
#include
using namespace std;
class Dog{
private:
	string str;
public:
	Dog(string str):str(str){
		cout<<"a dog "< dog(new Dog("xiaohei"));
	dog->bark();
	(*dog).bark();
	Dog *d=new Dog("xiaobia");
}


运行结果

C++智能指针浅析_第1张图片

结果分析

unique_ptr是C++11新增的,头文件是.

智能Dog自动去死,而没有使用智能指针的dog显然没有主动去死。


你可能感兴趣的:(C++)