У меня есть несколько классов, для которых я хотел бы явно запретить выделение кучи. Мне пришло в голову в этот уик-энд, что я могу просто объявить оператора новым частным (и не реализованным)... Конечно же, это приводит к ошибкам компиляции при попытке создать новый класс... Мой вопрос: есть ли еще что? Я что-то упустил или это хороший способ сделать то, что я хочу?
#include <stdio.h>
class NotOnTheHeap
{
public:
NotOnTheHeap() : foo( 0 )
{
}
private:
void *operator new( size_t );
void operator delete( void* );
void *operator new[]( size_t );
void operator delete[]( void* );
int foo;
};
class Heapable
{
private:
NotOnTheHeap noth;
};
int main( int argc, char* argv[] )
{
NotOnTheHeap noth;
Heapable* heapable = new Heapable;
return 0;
}