C++相談室 part28
■ このスレッドは過去ログ倉庫に格納されています
0236デフォルトの名無しさん
NGNG#include<iostream>
#include<cstdlib>
struct XX{
int data;
XX(){std::cout << "XX()" << std::endl;}
~XX(){std::cout << "~XX()" << std::endl;}
static void* operator new[] (size_t size){
std::cout << "new XX[]" << std::endl;
void* p = malloc(size); std::cout << p << std::endl;
return p;
}
static void operator delete[] (void* p){
std::cout << "delete XX[]" << std::endl;
free(p); std::cout << p << std::endl;
}
static void* operator new[] (size_t size,void* mem_p){
std::cout << "new (mem_p) XX[]" << std::endl;
mem_p = malloc(size); std::cout << mem_p << std::endl;
return mem_p;
}
static void operator delete[] (void* p,void* mem_p){
std::cout << "delete[] ( p , mem_p )" << std::endl;
std::cout << p << std::endl; std::cout << mem_p << std::endl;
delete [] p; //エラー!!! -> デストラクタがないときは大丈夫 ,G++3.3.1は大丈夫
}
};
■ このスレッドは過去ログ倉庫に格納されています