TGViewer
Senior C++ Developer Senior C++ Developer @seniorcpp · 11.6K subscribers
Post #2265 3.31K
➡️ Приведение типов

• Приведение в стиле C изменяет только тип, не затрагивая сами данные. В то время как старый C++ имел небольшой уклон в типобезопасность, он предоставлял фичу указания оператора/функции преобразования типа.
• Но это было неявное преобразование типов. Начиная с C++11, функции преобразования типов теперь можно сделать явными с помощью спецификатора explicit следующим образом:

struct demo
{
explicit operator bool() const { return true; }
};

demo d;
if (d); // OK, вызывает demo::operator bool()
bool b_d = d; // ОШИБКА: не может преобразовать 'demo' в 'bool' во время инициализации
bool b_d = static_cast<bool>(d); // OK, явное преобразование, вы знаете, что делаете
More from @seniorcpp
  1. Oct 11, 2026Для чего нужен аллокатор и как создать свой собственный аллокатор? Аллокатор это шаблонный…
  2. Oct 10, 2026Макрос watch Макрос watch — один из самых полезных приёмов. При отладке кода watch(перемен…
  3. Oct 9, 2026init внутри if и switch Эта возможность C++17 мне полюбилась сразу же, как только я узнал…
  4. Oct 8, 2026Сортировка пузырьком Определите, сколько обменов сделает алгоритм пузырьковой сортировки п…
  5. Oct 6, 2026#вопросы_с_собеседований Что такое чисто виртуальный метод и абстрактный класс? Ответ: Чис…
  6. Oct 5, 2026#вопросы_с_собеседований В чем отличие vector от deque? Ответ: Здесь вспоминают о наличии…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →