Каковы основные различия между * ^ и & в visual-C ++ 2010? - PullRequest
1 голос
/ 24 августа 2010

Каковы основные различия между * ^ и & в visual-C ++ 2010?

Ответы [ 2 ]

2 голосов
/ 24 августа 2010

Вы имеете в виду C ++ / CLI, новый «управляемый C ++», разработанный Microsoft.

  • Type* все еще объявляет собственный указатель
  • Type^ объявляет ссылку на объект, выделенный с помощью gcnew (его можно рассматривать как «указатель на управляемые объекты»)
  • Type& все еще объявляет собственную ссылку
2 голосов
/ 24 августа 2010

^ был введен в C ++ / CLI для ссылки на управляемые объекты, заменив знак *, используемый для собственных указателей объектов. Итак, имея два типа, управляемый и собственный, нужно написать:

class Native
{
};

ref class Managed
{
};

Native* pn = new Native();
Managed^ pm = gcnew Managed();

& может использоваться для получения собственного указателя из экземпляра собственного класса. Он не используется таким же образом для управляемых классов, доступ к которым осуществляется только по ссылке.

Native n;
Native* pn = &n;
...