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

Я вижу много библиотек 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 Ответ

4 голосов
/ 08 декабря 2011
...