С выпуском C 11 разработчики получили новый набор опций синтаксиса для инициализации классов, дополнив уже существующие инициализатор, заключенный в скобки. Такое множество вариантов поставило перед собой загадочную дилемму: когда использовать каждую опцию синтаксиса? , следует предпочесть инициализацию копирования (=). Это связано с тем, что это сводит к минимуму риск непреднамеренного вызова явного конструктора с потенциально другой семантикой. Инициализацию фигурных скобок следует рассмотреть, если инициализация копирования недоступна, а инициализацию скобок следует использовать в крайнем случае. храниться внутри объекта. Этот синтаксис особенно подходит для векторов, массивов и комплексных чисел.
Когда значения, предоставленные во время инициализации, описывают предполагаемое состояние или поведение объекта, а не его фактические данные. , следует использовать инициализацию в круглых скобках. Это часто происходит с аргументами, определяющими размер или имена файлов.
Рассмотрите следующие фрагменты кода:
{ // Пример 1 интервал б (1); // Копируем инициализацию для точного значения интервал а{1}; // Инициализация скобок для сохраненного значения интервал с = 1; // Инициализация круглых скобок для значения дескриптора (например, размера) интервал д = {1}; // Инициализация скобок для сохраненного значения }Следуя предложенному руководству, разработчики смогут уверенно ориентироваться в сложностях синтаксиса инициализатора C 11, обеспечивая точность и эффективность своего кода.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3