C++中的"^"符号是什么?

And*_*Eve 27 .net c++-cli visual-c++

当我在岩石下睡觉时,有一个新的符号加入了C++语言规范吗?

我刚刚遇到以下问题:

限制文本框仅接受10位数字

这表明'^'符号在某种程度上是C++的一部分(不是按位XOR的遗留意义)

是这样吗?

如果是这样,这是什么意思?(我试图谷歌问题,但谷歌没有得到满意的答案)

Mar*_*age 35

在C++中,"^"符号是按位异或(xor)运算符.对于一个位,你有0 ^ 0 = 1 ^ 1 = 00 ^ 1 = 1 ^ 0 = 1.

但是,在您提到的问题中,它是.NET平台上C++开发的Microsoft特殊语法的一部分,称为C++/CLI或It Just Works.

.NET上的内存被垃圾收集,并且必须跟踪对对象的引用.这使得无法使用普通的C++指针引用这些对象.Microsoft决定重用"^"符号来声明一个类似于可以引用托管堆上的对象的指针的变量.

^(托管堆上的对象句柄)


Nic*_*wis 15

在Visual C++中,^表示托管对象的句柄.基本上C#中的内容是一个参考.分配它们gcnew而不是new,它们将被垃圾收集.这就是Visual C++与CLI交互的方式.


Joe*_*oel 11

在引用的答案中,它不是标准C++语言的一部分,它是Microsoft为C++ interop拼凑而成的C++/CLI语言的一部分.在该语言中,^表示"指向托管内存的指针".