Инициализация производится только в том случае, когда функция
operator new() возвращает ненуль. Если она возвращает 0 (пустой
указатель), значение выражения есть 0.
Порядок вычисления выражения вызова operator new() для получения
памяти и порядок вычисления параметров конструктора неопределен.
Так же неопределено вычисляются ли параметры конструктора, если
функция operator new() возвратила 0.
В конструкции имя-типа-new скобки использовать необязательно.
Тогда обращение
new int (*[10])(); // error
может привести к ошибке, т.к. операции применяются в таком порядке
(new int) (*[10])(); // error
Объекты сложного типа можно задать в операции new с помощью явно
указанных скобок, например, обращение
new (int (*[10])());
размещает массив из 10 указателей на функции (не имеющие параметров
и возвращающие int).
Конструкции имя-типа-new в выражение-размещения должна быть
самой длинной из возможных последовательностей конструкций
описатель-new. Это предотвращает коллизии между операциями из
Предыдущая страница 53 Следующая страница
Warning: file_get_contents(../niz.php?uri=/a/53.htm) [function.file-get-contents]: failed to open stream: No such file or directory in /home/aptemne/public_html/cpp/a/53.htm on line 52
|