TGViewer
Библиотека C/C++ разработчика | cpp, boost, qt Библиотека C/C++ разработчика | cpp, boost, qt @cppproglib · 16.9K subscribers
Post #6829 1.65K
🍴 Rule of Zero: лучший Fab Four — тот, что ты не писал

Идеальный класс не содержит ни одного из пяти методов. Это не лень — это архитектурный принцип, который снижает количество багов.

🍒 Rule of Zero

Если каждое поле само корректно управляет своим ресурсом (std::string, std::vector, std::unique_ptr), то классу-агрегату не нужны свои Fab Four. Компилятор сгенерирует правильные почленные версии.

struct User {
std::string name;
std::vector<int> scores;
std::unique_ptr<Db> conn;
};
// move + dtor — сгенерированы, корректны и БЕСПЛАТНЫ
// copy — корректно УДАЛЁН: unique_ptr некопируем → User тоже (move-only тип)


❗️Почему работает: почленное перемещение вызовет move у каждого поля. string украдёт буфер, vector — массив, unique_ptr — указатель. Тебе не нужно писать ни строки.

❗️ Ключевое условие — не объявлять деструктор. И ~User(){}, и ~User() = default одинаково опасны: любой user-declared деструктор отключает неявную генерацию move.


✏️ Твои классы владеют new/delete напрямую — или прячут их в unique_ptr и живут по Rule of Zero?


📍Навигация: ВакансииЗадачи Собесы

Библиотека C/C++ разработчика

#под_капотом
  • 🙏 2
  • 👍 1
More from @cppproglib
  1. Sep 19, 2026А вы уже забрали свой подарок ко Дню программиста? К вашему профессиональному празднику Tp…
  2. Sep 18, 2026Сегодня последний день регистрации на КосмоХакатон! 18–20 сентября, Петербург, Красноярск…
  3. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  4. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  5. Sep 13, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 13, 2026🤩 Inline static в классах — забудь про .cpp Сколько раз ты забывал добавить определение s…
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 →