对于某些枚举E,E和E ^有什么区别? (C ++ / CLI)

问题描述 投票:0回答:1

假设我将枚举E定义如下:

#pragma managed

namespace MyNamespace
{
  public enum class E
  {
    X = 0,
    Y = 1,
    Z = 2
  };
}

以下两个方法签名之间有什么区别?

#pragma managed

namespace MyNameSpace
{
  public MyClass
  {
      public void method1(E an_enum) {}

      public void method2(E^ an_enum) {}
   };
}

[我试图理解使用E与E ^之间的含义。谢谢。

.net c++-cli
1个回答
0
投票

'hat'运算符是指针的C ++ / CLI版本。而不是传递它传递的值,而是传递对象在内存中的位置。它的行为就像一个指针,但允许.Net跟踪您的对象。如果发现不再跟踪该对象,则垃圾收集器将删除该对象。

有关“帽子”运算符的更多信息:https://docs.microsoft.com/en-us/cpp/extensions/handle-to-object-operator-hat-cpp-component-extensions?view=vs-2019

© www.soinside.com 2019 - 2024. All rights reserved.