В чем разница между E и E ^ для некоторых Enum E?(C ++ / CLI) - PullRequest
0 голосов
/ 27 сентября 2019

Предположим, я определил перечисление 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 ^.Спасибо.

1 Ответ

0 голосов
/ 28 сентября 2019

Оператор 'hat' - это краткая версия указателя на C ++ / CLI.вместо того, чтобы передать значение, оно передает местоположение объекта в памяти.Он ведет себя как указатель, но позволяет .Net отслеживать ваш объект.если он замечает, что объект больше не отслеживается, сборщик мусора удалит объект.

Подробнее об операторе 'hat': https://docs.microsoft.com/en-us/cpp/extensions/handle-to-object-operator-hat-cpp-component-extensions?view=vs-2019

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...