智能指针让我们不再操心内存泄露的问题
类多态是面向对象的一大特性
普通指针可以实现类多态,智能指针同样也能,请看代码
#include <iostream>
#include<vector>
class Base
{
public:
virtual void show() = 0;
};
class A :public Base
{
public:
virtual void show()
{
std::cout << "A show\n";
}
};
class B:public Base
{
public:
virtual void show()
{
std::cout << "B show\n";
}
};
int main()
{
std::vector<std::shared_ptr<Base> > pBaseVec;
std::shared_ptr<Base> pA = std::make_shared<A>();
std::shared_ptr<Base> pB = std::make_shared<B>();
pBaseVec.push_back(pA);
pBaseVec.push_back(pB);
for (auto pBase : pBaseVec)
{
pBase->show();
}
return 0;
}