关于智能指针shared_ptr的疑问,急求高手解答!
今天在研究shared_ptr的时候遇到一个问题:
程序如下所示:
#include "stdafx.h"
#include <iostream>
#include <memory>
using namespace std;
class Point{
private:
int x,y;
public:
Point():x(0),y(0){};
Point(int a, int b):x(a),y(b){};
void Print(){
cout<< x <<" "<< y <<endl;
}
};
shared_ptr<Point> PtrReturn(){
shared_ptr<Point> ptr1(new Point(10, 10));
shared_ptr<Point> ptr2(ptr1);
return ptr2;
}
Point* NoPtrReturn(){
Point p(1, 1);
return &p;
}
int main()
{
shared_ptr<Point> sp1;
sp1 = PtrReturn();
cout<<sp1.use_count()<<endl;
sp1->Print();
return 0;
}