#include <iostream>
#include <memory>
#include <string>
#include <unordered_map>
using namespace std;
class Person
{
public:
Person(string name)
{
this->m_Name = name;
cout<<"执行Person有参构造函数"<<endl;
}
Person()
{
cout<<"执行无参构造函数"<<endl;
}
void setAge(int age)
{
this->m_Age = age;
cout<<"执行setAge函数"<<endl;
}
int getAge()
{
return m_Age;
}
~Person()
{
cout<<"执行析构函数"<<endl;
}
int m_Age;
string m_Name;
};
void test()
{
shared_ptr<Person> p1;
p1 = std::make_shared<Person>();
p1->setAge(37);
cout<<"p1 age ====="<<p1->getAge()<<endl;
cout<<"p1.use_count() ====="<<p1.use_count()<<endl;
cout<<"------------------------------------"<<endl;
std::unordered_map<int, std::shared_ptr<Person>> g_serviceSetMaps;
g_serviceSetMaps.insert(std::make_pair(1,std::shared_ptr<Person>(new Person("lqq"))));
g_serviceSetMaps.insert(std::make_pair(2,std::shared_ptr<Person>(new Person("lff"))));
for (auto iter = g_serviceSetMaps.begin(); iter != g_serviceSetMaps.end(); ++iter) {
cout <<"iter->second=" <<iter->second<<" "<<"(iter->second.get())=" << (iter->second.get()) << endl;
cout << "<" << iter->first << ", " << (iter->second->m_Name) << ">" << endl;
}
}
int main()
{
test();
return 0;
}
智能指针调用成员函数
最新推荐文章于 2023-03-14 15:13:08 发布