Что такое символ "^" в С++?
Новый символ присоединился к спецификации языка С++, когда я спал под скалой?
Я только что столкнулся со следующим вопросом:
Ограничить текстовое поле, чтобы принимать только 10-значный номер
Это говорит о том, что символ "^" является частью С++ (не в унаследованном смысле побитового XOR)
Это так?
Если да, что это значит? (Я пытался google вопрос, но Google не придумал удовлетворительных ответов)
Ответы
Ответ 1
В С++ символ "^" является побитовым эксклюзивным или (xor) оператором. Для одного бита вы имеете 0 ^ 0 = 1 ^ 1 = 0
и 0 ^ 1 = 1 ^ 0 = 1
.
Однако в вопросе, который вы ссылаетесь на него, является частью специального синтаксиса Microsoft для разработки на С++ на платформе .NET, известной как С++/CLI или It Just Works.
Память на .NET - это сбор мусора, и ссылки на объекты должны быть отслежены. Это делает невозможным ссылку на эти объекты с помощью обычного указателя С++. Microsoft решила повторно использовать символ "^", чтобы объявить переменную, несколько похожую на указатель, который может ссылаться на объект в управляемой куче.
^ (Обращение к объекту на управляемой куче)
Ответ 2
В Visual С++ ^
представляет собой дескриптор управляемого объекта. По сути, в С# было бы ссылкой. Выделите их gcnew
вместо new
, и они будут собирать мусор для вас. Вот как Visual С++ взаимодействует с CLI.
Ответ 3
В ответном ответе он не является частью стандартного языка С++, он является частью языка С++/CLI, который Microsoft объединил для взаимодействия .NET. На этом языке ^ означает "указатель на управляемую память".
Ответ 4
Синтаксис '^' относится к ссылка на отслеживание в С++/CLI, расширение Microsoft для С++, которое позволяет взаимодействовать с управляемым кодом.
Ответ 5
Это не часть стандартного С++. Это часть Managed С++ (язык Microsoft очень похож на С++ для .NET). Это означает "ссылку на ----" почти так же, как "*" означает "указатель на -----" - это стандартный С++.