C++ cli ^在C+中是什么意思+;?

C++ cli ^在C+中是什么意思+;?,c++-cli,C++ Cli,所以我刚刚在WinApi中偶然发现了这个函数 public: static array<Process^>^ GetProcessesByName( String^ processName ) 公共: 静态数组^GetProcessByName( 字符串^processName ) ^代表什么?似乎很奇怪,以前从未见过这种情况。这是C++/CLI,而^是用于参考的(使用gcnew分配)。引用被垃圾收集 在这个特定的示例中,函数获取对字符串的引用,并返回对进程的引用数组的

所以我刚刚在WinApi中偶然发现了这个函数

public:
static array<Process^>^ GetProcessesByName(
    String^ processName
)
公共:
静态数组^GetProcessByName(
字符串^processName
)

^
代表什么?似乎很奇怪,以前从未见过这种情况。

这是C++/CLI,而
^
是用于参考的(使用
gcnew
分配)。引用被垃圾收集

在这个特定的示例中,函数获取对字符串的引用,并返回对
进程
的引用数组的引用。对于任何引用类型,都必须使用
^
(换句话说,不能使用该类型的非引用变量)

正如注释中指出的,这可能是,但语法基本相同,但使用
ref new
而不是
gcnew


如前所述,在您的示例中,
^
代表Microsoft的C++/CLI垃圾控制指针

<>但是,在标准C++ +>代码> 中,<强>位元异或运算符> < /强>
运算符^
将其第一个操作数的每一位与其第二个操作数的对应位进行比较。如果一位为0,另一位为1,则相应的结果位设置为1。否则,相应的结果位设置为0

#include <iostream>

int main() {
  int a = 0x5555;
  int b = 0xFFFF;
  std::cout  << std::hex << ( a ^ b ) << std::endl;
}
#包括
int main(){
INTA=0x5555;
int b=0xFFFF;

C++:C++是C++的,是一个垃圾控制的指针。这不是C++,而是C++ + CLI或C++/CX。这不是C++,它是C++ + CLI。我相信代码> >代码>代表“托管引用”。“塞缪尔,托管C++是在C++ + CLI之前的:CPP”。不代表C++,它也可以是C++,我知道它是OC:)但是它让我在这个位置感到困惑。