shared_ptr范围基本了解

时间:2017-01-12 07:44:22

标签: c++11 shared-ptr

您好我是C ++ 11概念的新手。我已经声明了两个带有差异范围的共享指针。我将本地范围分配给更高一级的范围shared_ptr。我试图打印相同的。它没有造成任何问题。当然我同意我们的普通指针也具有相同的属性。但这可能最终会悬挂指针。在这里我只想知道sPtr2是指向无效指针还是其正确。

#include <iostream>
#include <memory>
using namespace std;
struct MyStruct_t
{
    int a;
    int b;
};
int main() {
shared_ptr<MyStruct_t> sPtr2;
if(1)
{

    shared_ptr<MyStruct_t> sPtr1 (new MyStruct_t);
    sPtr1->a = 5;
    sPtr1->b = 10;
    sPtr2 = sPtr1;
    cout<<"sPtr1->a : "<<sPtr1->a<<" b value : "<<sPtr1->b<<endl;
    cout<<"sPtr1 address is : "<<sPtr1<<endl;
}
cout<<"sPtr2->a : "<<sPtr2->a<<" b value : "<<sPtr2->b<<endl;
cout<<"sPtr2 Address is : "<<sPtr2<<endl;
return 0;
}

0 个答案:

没有答案