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

Что такое символ "^" в С++?

Новый символ присоединился к спецификации языка С++, когда я спал под скалой?

Я только что столкнулся со следующим вопросом:

Ограничить текстовое поле, чтобы принимать только 10-значный номер

Это говорит о том, что символ "^" является частью С++ (не в унаследованном смысле побитового XOR)

Это так?

Если да, что это значит? (Я пытался google вопрос, но Google не придумал удовлетворительных ответов)

4b9b3361

Ответ 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). Это означает "ссылку на ----" почти так же, как "*" означает "указатель на -----" - это стандартный С++.