^在C ++中意味着什么?

时间:2014-06-25 12:13:15

标签: c++-cli

所以我在WinApi

中偶然发现了这个功能
public:
static array<Process^>^ GetProcessesByName(
    String^ processName
)

^代表什么?看起来很奇怪从来没有见过这个。

2 个答案:

答案 0 :(得分:2)

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

.NET Programming in Visual C++

在此特定示例中,该函数接受对字符串的引用,并返回对Process的引用数组的引用。对于任何引用类型,必须使用^(换句话说,您不能拥有该类型的非引用变量)。

正如评论中所指出的,这可能是C++/CX,但语法大致相同,但使用ref new代替gcnew

Visual C++ Language Reference (C++/CX)

答案 1 :(得分:0)

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

但是,在标准C ++中,^按位异或运算符^

operator^将其第一个操作数的每个位与其第二个操作数的相应位进行比较。如果一位为0而另一位为1,则相应的结果位设置为1.否则,相应的结果位设置为0.

#include <iostream>

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

<强> Live Demo