Почему компилятор инициализирует эти значения? [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему компилятор инициализирует эти значения? [дубликат]

Сообщение Anonymous »


В следующем классе, когда я создаю экземпляр, компилятор устанавливает для всех значений значение 0xcdcdcd, которое является значением инициализации компилятора Visual Studio для неинициализированной памяти.

класс CommandBufferObject2 { публика: символ* мой указатель; INT Shared_reference_count; чар* фбо; символ * vk_buffer_handle; символ * родительский_cmd_pool; bool bIsSecondary; интервал current_subpass; символ *bound_pipeline; }; интервал основной() { авто* p2 = новый CommandBufferObject2; // ВСЕ ЗНАЧЕНИЯ УНИЦИАЛИЗИРОВАНЫ 0xcdcdcdcd } Однако, когда я инициализирую последнего члена:

класс CommandBufferObject2 { публика: символ* мой указатель; INT Shared_reference_count; чар* фбо; символ * vk_buffer_handle; символ * родительский_cmd_pool; bool bIsSecondary; интервал current_subpass; символ *bound_pipeline = nullptr; // здесь }; Теперь каждый раз, когда я создаю объект, все значения равны нулю, каждый член. Почему это происходит? Я использую Visual Studio версии 17.7.6. Интересно, что я снова создал проект в другом проекте Visual Studio, но этого не происходит, обнуляется только фактическая переменная, которую я установил в nullptr. Это наводит меня на мысль, что это какая-то настройка, но я понятия не имею, что происходит.
Ответить

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

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

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

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

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