Я знаю, что, возможно, это не лучший дизайн в мире, но мне интересен ответ без какой-либо практической причины.Перегрузка нового оператора и наследование
Пусть Предположим, у меня есть эти два класса с перегруженными новыми методами:
class Base {
public:
operator void* new(size_t);
};
class Child : public Base {
public:
operator void* new(size_t); //THIS, i would like this to be the "original" new.
};
operator void* Base::new(size_t) {
//...
return new Child;
//...
}
Я хотел бы Ребенок :: нового работать как оригинал новый, так что я мог избежать использования таНоса.
Есть ли способ сделать это?
Спасибо заранее!
Это [ссылка] (http://blogs.msdn.com/b/calvin_hsia/archive/2009/01/19/9341632.aspx) может помочь вам ... – niktehpui
Я не думаю, что ваша 'база: : operator new' really 'works' (например, каждый раз, когда 'Child' построен, он не уничтожается). Учитывая это, трудно сказать, что вы хотите сделать «Child :: operator new». Вы уверены, что не ищете заводские функции? –
Хорошее чтение: [Как мне написать ISO C++ Стандартные совместимые пользовательские новые и удалить операторы?] (Http://stackoverflow.com/questions/7194127/how-should-i-write-iso-c-standard-conformant-custom -новый-и-удалить-операторов). Я не понимаю, чего вы пытаетесь достичь. Поэтому я не хочу отмечать это как дубликат, у меня есть чувство, что это то, что вы ищете. –