#include <iostream>
#include <string>
#include <memory>
using namespace std;
class report
{
private:
std::string str;
public:
report(const std::string s) : str(s)
{
std::cout << "Object created.\n";
}
~report()
{
std::cout << "Object deleted.\n";
}
void comment() const
{
std::cout << str << "\n";
}
};
int main(int argc, char *argv[])
{
//QCoreApplication a(argc, argv);
cout<<"******************begin*********************"<<endl;
// auto_ptr
std::auto_ptr<report> ps_auto_ptr(new report("auto_ptr::using auto ptr"));
ps_auto_ptr->comment ();
// shared_prt
std::shared_ptr<report> ps_shared_ptr(new report("shared_prt::using shared ptr"));
ps_shared_ptr->comment();
// unique_ptr
std::unique_ptr<report> ps_unique_ptr(new report("unique_ptr::using unique ptr"));
ps_unique_ptr->comment();
cout<<"******************end*********************"<<endl;
return 0;
}