本文主要是介绍C++11中shared_ptr智能指针用法(二十二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.代码示例
#include <memory>
#include <iostream>
using namespace std;class Test{//外部类及函数不可访问成员变量等
//struct Test{//外部类及函数可访问成员变量等,如:main.cpp可访问成员变量
public:Test();~Test();Test* init(float num = 0);Test* set();void end(float* fp, int offset = 0);static Test *Builder();
};
Test *Test::Builder(){return new Test;
}Test::Test(){cout << __FUNCTION__ <<"()" << endl;
}Test::~Test(){cout << __FUNCTION__ <<"()" << endl;
}Test* Test::init(float num){cout << __FUNCTION__ <<"()" << endl;return this;
}Test* Test::set(){cout << __FUNCTION__ <<"()" << endl;return this;
}void Test::end(float* fp, int offset){cout << __FUNCTION__ <<"()" << endl;return;
}//shared_ptr<Test> tt = shared_ptr<Test>(new Test);//heap
//shared_ptr<Test> tt;//stack
int main(){float *p;//1.shared_ptr//auto tt = shared_ptr<Test>(new Test);//auto tt = shared_ptr<Test>(Test::Builder());/*tt->set()->init()->end(p);*///2.shared_ptr<Test>(Test::Builder())->set()->init()->end(p);//3.static object
/*Test *ob = Test::Builder();ob->set()->init()->end(p);delete ob; */
}
这篇关于C++11中shared_ptr智能指针用法(二十二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!