实际项目中会使用new操作吗?
各位大虾,不知道在实际项目中,会否直接使用new来创建目标对象?对这个我比较困惑。
还是会考虑使用类似stl中的allocator之类的来管理内存。还请高手大虾们明示
以下是我碰到的实际小例子。
#include <iostream>#include <boost/shared_ptr.hpp>#include <vector>class IObj{public: virtual void foo() = 0;};typedef boost::shared_ptr<IObj> IObjPtr;class CObjA:public IObj{public: virtual void foo() {std::cout<< "CObjA::foo().\n" ;}};class CObjB:public IObj{public: virtual void foo() {std::cout<< "CObjB::foo().\n" ;}};class CObjManager{ std::vector<IObjPtr> m_Ptrs;public: //some operation of manager //foo example void Traversal() { typedef std::vector<IObjPtr>::iterator iterator; for (iterator it = m_Ptrs.begin();it != m_Ptrs.end(); ++it) { (*it)->foo(); } } void insert(IObjPtr p) { m_Ptrs.push_back(p); }};int main(){ CObjManager mana; //以下使用了new。 mana.insert(IObjPtr(new CObjA())); mana.insert(IObjPtr(new CObjB())); mana.Traversal(); return 0;}