Является ли оператор new/delete полиморфным в C++?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Является ли оператор new/delete полиморфным в C++?

Сообщение Anonymous »

Предположим, у меня есть следующий код

Код: Выделить всё

// X.h

class X{
void* operator new(std::size_t size);
void operator delete(void* ptr);
}

class ArenaAllocatedX {
void* operator new(std::size_t size);
void operator delete(void* ptr);
}

// main.cpp
void main() {
X* x1 = new X();
delete x1;

X* x2 = new ArenaAllocatedX ();
delete x2;

}
Использование GCC 10.3.1, вызывает операторы нового и удаления класса X, а x2 вызывает класс ArenaAllocatedX, возникает вопрос: является ли это гарантированным поведением? Как замена оператора памяти взаимодействует с наследованием?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/786 ... rphic-in-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»