版本一
#include<iostream>
#include<string>
#include<queue>
#include<deque>//双端队列
using namespace std;
class Point {
private:
int x, y;
public:
Point():x(0),y(0) {
cout << "create" << endl;
}
~Point() {
cout << "delete" << endl;
}
};
#define LOG(info) \
cout<<__FILE__<<":"<<__LINE__<<""\
<<__TIMESTAMP__<<":"<<info<<endl;//日志
const int MaxObject = 10;
template<class T>
class ObjectPool {
private:
bool needClose;//false
std::deque<T*>m_object_queue;
public:
ObjectPool():needClose(false) {}
ObjectPool(const ObjectPool&) = delete;//删除方法
ObjectPool& operator=(const ObjectPool&) = delete;
~ObjectPool(){
Close();
}
void Close() {
needClose = true;
Clear();
}
void Clear() {
for (auto x : m_object_queue) {
delete x;
}
}
size_t GetNum()const {
return m_object_queue.s