C++ 智能指针 shared_ptrmake_shared用法

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 智能指针 shared_ptrmake_shared用法相关的知识,希望对你有一定的参考价值。

一、使用shared_ptr条件

  1.  C++版本11以上

  2. 需引入头文件

#include <memory>

否则编译会报错

error: ‘shared_ptr’ was not declared in this scope

二、用法

 

#include <iostream>
#include <vector>
#include <memory>
using namespace std;

class testClass

	public: 
		testClass()
			temp3 = make_shared<vector<int>>();
		
		shared_ptr<vector<int>> temp3;
;

int main() 

	cout<<"999999"<<endl;
	
	testClass tempObj;
	cout<<"temp1的长度: "<<tempObj.temp3->size()<<endl;
	
	tempObj.temp3->push_back(333);
	cout<<"temp1的长度: "<<tempObj.temp3->size()<<endl;
	
	return 0;

三、若是定义在class中,则需要在class的构造函数中

#include <iostream>
#include <vector>
#include <memory>
using namespace std;

class testClass

  public: 
    testClass()
      temp3 = make_shared<vector<int>>();
    
    shared_ptr<vector<int>> temp3;
;

int main() 

  cout<<"999999"<<endl;
  
  testClass tempObj;
  cout<<"temp1的长度: "<<tempObj.temp3->size()<<endl;
  
  tempObj.temp3->push_back(333);
  cout<<"temp1的长度: "<<tempObj.temp3->size()<<endl;
  
  return 0;

原文:C++ 智能指针 shared_ptr、make_shared用法 

以上是关于C++ 智能指针 shared_ptrmake_shared用法的主要内容,如果未能解决你的问题,请参考以下文章

C++智能指针

C++ 智能指针性能

C++ 和智能指针——智能指针在这种情况下有啥帮助?

C++智能指针类模板

C++ 中的智能指针-基础

C++智能指针简单剖析