Подтвердить что ты не робот

Какие идиомы С++ должны использовать программисты на C++?

Какие идиомы С++ должны знать программисты на C++?

Идиомами С++ я имею в виду шаблоны проектирования или способ выполнения определенных вещей, которые применимы только для С++ или более применимы для С++, чем большинство других языков.

Почему нужно использовать идиомы, и что делают идиомы?

4b9b3361

Ответ 1

Вот один список. Если бы мне пришлось выбирать пару, я мог бы пойти с Curiously Recurring Template Pattern или Virtual Contructors.

Ответ 2

На сегодняшний день единственным наиболее важным "образцом" для изучения и понимания того, что (почти) уникальным для С++ является RAII (Инициализация ресурсов).

Изменить: (Чтобы ответить на дополнительный вопрос, отредактированный в вопросе). Вы используете RAII в первую очередь для (полуавтоматического) управления ресурсами. Наиболее очевидное использование - освобождение ресурсов, принадлежащих объектам, когда объекты-владельцы выходят за рамки, такие как освобождение памяти или закрытие файлов.

Ответ 3

PIMPL, aka P на IMPL ementation?

Ответ 4

Метапрограммирование шаблонов. Это здорово, потому что это в основном компиляция утиного ввода, так что вы получаете большую гибкость утиного ввода со скоростью статического ввода.

Ответ 5

Если вы хотите получить максимальную отдачу от STL, то итераторы и функторы/объекты функций являются важными идиомами. Использование итераторов также неявно зависит от идиомы "полуоткрытого диапазона".

Ответ 6

Эксплуатация Strong Typing и правильность const также чрезвычайно полезна.

Я также запрещаю конструкторы копирования по умолчанию и операторы присваивания. Я на самом деле выхожу за рамки этого, но они самые распространенные. Я думаю, что жизнь будет проще, если они не будут подразумеваться.

Ответ 7

RAII, COW, pimpl, закон demeter (не уверен, можно ли классифицировать как идиому), черты и политики типа. (COW и закон demeter не ограничиваются только С++)