Задать вопрос
@IliaNeverov

Что означают просто { тут блок кода } в с++?

Что означают просто
{
//блок кода
 }

без имени , аргументов или чего то подобного?
  • Вопрос задан
  • 293 просмотра
Подписаться 1 Простой 4 комментария
Решения вопроса 2
@tugo
Пользуются свойствами блока кода:
1. создается новая область видимости
2. объект, созданный внутри блока кода, удалится по завершению (т.е вызовется деструктор). В сочетании с RAII иногда удобно.

// Когда не хочется придумывать новое имя другой переменной, которая точно такая же по смыслу.
// И хочется дать ей константность - ее менять я не собираюсь, в смысле изменчивости переменной.
const bool ok = foo1();
if (!ok)
    return;
{
    const bool ok = foo2();
    if (!ok)
        return;
}


// Когда надо защитить мьютексом изменение переменной, на как можно более короткое время.
...  некий код
{
    const std::lock_guard<std::mutex> lock(_mutex);
    ++i;
    // _mutex is automatically released when lock goes out of scope
}
... продолжаем код


Или замерить время выполнения части кода. Создаем объект, в конструкторе которого захватываем текущее время, в деструкторе выводим затраченное время в лог.
Ответ написан
Комментировать
GavriKos
@GavriKos
Означают просто блок кода. Влияет, например, на область видимости.
Хотя так еще можно вроде массивы инициализировать (не уверен), еще что то.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы