#include <iostream>
#include <string>
using namespace std;
class A {
private:
string name;
public:
A() {}
A(string name){
this->name=name;
};
~A(){
cout<<"Destructor. Destroyed "<<name<<"\n";
};
void operator delete(void* p, A* a){
cout<<"-Delete "<<a->name<<"\n";
};
void operator delete(void* pointer){
cout<<"Delete"<<"\n";
};
void operator delete[](void* pointer){
cout<<"Delete[]"<<"\n";
};
};
int main(){
int number = 5;
A* a = new A[ number ];
delete [] a;
system("pause");
return 0;
};
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQSB7CnByaXZhdGU6CiAgICBzdHJpbmcgbmFtZTsKcHVibGljOgoJQSgpIHt9CiAgICBBKHN0cmluZyBuYW1lKXsKICAgICAgICB0aGlzLT5uYW1lPW5hbWU7CiAgICB9OwogICAgfkEoKXsKICAgICAgICBjb3V0PDwiRGVzdHJ1Y3Rvci4gRGVzdHJveWVkICI8PG5hbWU8PCJcbiI7CiAgICB9OwogICAgdm9pZCBvcGVyYXRvciBkZWxldGUodm9pZCogcCwgQSogYSl7CiAgICAgICAgY291dDw8Ii1EZWxldGUgIjw8YS0+bmFtZTw8IlxuIjsKICAgIH07CiAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBwb2ludGVyKXsKICAgICAgICBjb3V0PDwiRGVsZXRlIjw8IlxuIjsKICAgIH07CiAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZVtdKHZvaWQqIHBvaW50ZXIpewogICAgICAgIGNvdXQ8PCJEZWxldGVbXSI8PCJcbiI7CiAgICB9Owp9OwoKaW50IG1haW4oKXsKaW50IG51bWJlciA9IDU7CkEqIGEgPSBuZXcgQVsgbnVtYmVyIF07CgpkZWxldGUgW10gYTsKICAgIHN5c3RlbSgicGF1c2UiKTsKICAgIHJldHVybiAwOwp9Ow==