Поделиться через


Преобразования

Объекты заданного типа класса может быть преобразовано к объектам другого типа.Это делается путем построения объект типа класса целевого объекта из типа класса источника и копировать результат к целевому объекту.Этот процесс называется преобразованием конструктором.Объекты могут быть преобразованы пользователь-поставленными функциями преобразования.

Когда стандартные преобразования (описанные в пределах стандартные преобразованияfull) не может выполнить преобразование из заданного типа к типу класса, компилятор может выбрать определяемые пользователем преобразования, чтобы полностью заданию.В дополнение к явным преобразований типа, выполняемые при преобразовании:

  • Выражение инициализации не является один и тот же тип, что и инициализируемые объект.

  • Тип аргумента, используемый в вызове функции аргумента не соответствует типу, указанному в объявлении функции.

  • Тип объекта возвращается из функции не соответствует возвращаемому типу, указанному в объявлении функции.

  • 2 Операнда выражения должны быть одного типа.

  • Выражение управление выписку итерации или выделения требует различных типа из указанного объекта.

Определенное пользователем преобразование применяется, только если она однозначно; в противном случае выдается сообщение об ошибке.Неоднозначности проверена с точки зрения потребления.Следовательно, если функций, которые приводят к неоднозначности не используются, то класс можно назначить с потенциальными неоднозначностями, а не создавать ошибки.Несмотря на наличие многих ситуациях, в которых неоднозначности возникают эти 2 причине, который привел неоднозначностей.

  • Тип класса получается с помощью множественное наследование, и он мутноват, из которого базового класса, чтобы выбрать преобразование (см. неоднозначность).

  • Явный оператор тип-преобразования и конструктор для одного преобразования существующих (см. функции преобразования).

И преобразование конструктором, и преобразование функциями преобразования подчиняются правилам управления доступом, как описано в разделе Управление доступом к членам.Управление доступом проверено только после того, как преобразование найдено, чтобы быть однозначно.

Дополнительные сведения см. в разделе конструкторы преобразования.

См. также

Ссылки

Специальные функции-члены (C++)