А new нельзя как-нить переопределить? Я попробовал, но мне сказали, что я пытаюсь получить доступ к конструктору
__>Следует объявить конструктор защищенным и предоставить функцию создания объекта динамически : __>
__>class a
__>{
__>public:
__> static a* create() { return new a; }
__>protected:
__> a(){}
__>};
__>int main()
__>{
__> a* p = a::create(); // OK
__> a x; // Error
__>}
__>