Состояние указателя объекта после нового исключения конструктора - C ++ - PullRequest
5 голосов
/ 30 ноября 2010

Каким будет состояние указателя объекта, когда новый конструктор класса выдает исключение в C ++?Например, возьмем следующий код:

CMyClass * pobjMyClass = (CMyClass *)0xA5A5A5A5;

try
{
    pobjMyClass = new CMyClass(); // Exception thrown in constructor
}
catch ( ... ) {}

Когда этот код будет выполнен, каким будет значение pobjMyClass после создания исключения?Указатель на недопустимый экземпляр CMyClass, 0xA5A5A5A5, NULL, случайное неинициализированное значение или что-то еще?Спасибо.

1 Ответ

6 голосов
/ 30 ноября 2010

Поскольку исключение выдается перед назначением, pobjMyClass будет таким, каким он был раньше - в вашем случае 0xa5a5a5a5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...