TGTGInsightаналитика telegramLIVE / telegram public index
← ФСП | Запорожская область
ФСП | Запорожская область avatar

TGINSIGHT POST

Post #280

@fsp_zo

ФСП | Запорожская область

Просмотры104Количество просмотров
Опубликован27 нояб.27.11.2025, 08:14
Содержимое поста

Содержимое

Как запретить опасное копирование ещё на этапе компиляции? Класс часто владеет ресурсом: файл, сокет, мьютекс. Если такой объект случайно скопировать, ресурс могут закрыть дважды или использовать после освобождения — ловим странные баги. В современном C++ не нужно придумывать трюки с приватными конструкторами. Достаточно явно запретить операции через = delete: struct File { File(const std::string& path); File(const File&) = delete; File& operator=(const File&) = delete; }; Теперь любой код, который останавливается ещё на стадии сборки, например: File a{"data.txt"}; File b = a; // ❌ не скомпилируется Тем же приёмом можно отключать нежелательные перегрузки функций: void print(double); void print(int) = delete; // запретить неявное приведение int → double ➡️Итог: = delete — простой способ сказать компилятору «эту операцию делать нельзя», и превратить потенциальный рантайм-баг в понятную ошибку компиляции. @fsprussia #ФСП#СпортивноеПрограммирование