Может ли перегруженный новый оператор получать аргументы для передачи конструктору объекта?

Я вижу много библиотек C++, занимающихся динамическим распределением памяти следующим образом:

Qimage* _image = new QImage(width, height, QImage::Format_RGB888);
if (!_image)
{ 
    // Failed!
}

Мне интересно, что можно проверить, был ли объект успешно выделен или нет, с помощью простого кода, такого как if (!_image),

1) Интересно, это стандартная особенность стандарта?new или если это возможно только при перегрузке operator new с вашей собственной реализацией.

2) Как бы я пошел о реализации operator new в этом случае, где он получает аргументы для конструктора объекта и возвращает NULL в случае, если ширина && height равна 0?

Я правильно понял?

1 ответ

Решение
Другие вопросы по тегам