扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
classHeapClass { public: voidDestory() const {deletethis;} private: ~HeapClass(){} }; HeapClass* ptr = newHeapClass; ptr->Destory(); |
newHeapClass(* newHeapClass); |
classHeapClass { private: void* operatornew[](size_tsize); typedefconstvoid * RawAddress; voidoperatordelete[](void* ptr); public: voidoperatordelete(void *ptr) { printf("delete\n"); ::operatordelete(ptr); m_address.erase(std::remove(m_address.begin(),m_address.end(),ptr),m_address.end()); return; } void* operatornew(size_tsize) { printf("new\n"); void * ptr = ::operatornew(size); m_address.push_back(ptr); returnptr; } HeapClass() { printf("Constructor!\n"); } HeapClass(constHeapClass&) { printf("copy Constructor!\n"); } virtualvoidDestory() const {deletethis;} virtual ~HeapClass() = 0; boolisOnHeap() const { // const void * rawAddress = dynamic_cast<const void *>(this); constvoid * rawAddress = (constvoid *)(this); std::deque<RawAddress>::iteratoriter = std::find(m_address.begin(),m_address.end(),rawAddress); returniter != m_address.end(); } private: staticstd::deque<RawAddress> m_address; }; HeapClass::~HeapClass(){} std::deque<HeapClass::RawAddress> HeapClass::m_address; classDHeapClass:publicHeapClass {}; |
classHeapClass { private: void* operatornew(size_tsize); void* operatornew[](size_tsize); voidoperatordelete(void *ptr); voidoperatordelete[](void* ptr); public: HeapClass(){printf("Constructor!\n");} HeapClass(constHeapClass&){printf("copy Constructor!\n");} public: ~HeapClass(){} }; |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者