在尝试建立对象池的时候,对classA的new、delete进行重构
对智能指针share_ptr的构造析构以及空间分析了一下:
假设classA大小为N字节
1 shared_ptr<classA> b = make_shared<classA>()
这种方式,不会调用class自身的new函数,而是把classA作为一个成员,加入到智能指针中一起进行构造.
大小为20+N
2 share_ptr<classA> b(new classA())
如果需要对对象new进行重载的话,需要这么使用智能指针。调用两次new,一次是classA,一次是智能指针自身。
大小为20+4,应该是作为对象指针变为智能指针的成员。