Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Что такое ^ в MyGeneric<T>^ ig;  (Прочитано 9147 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ezus
Опытный

il
Offline Offline

« : 16-02-2011 12:50 » 

Второй день блуждаю по мсдн - не могу найти.
Может быть кто-нибуть даст ссылку?
Записан
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 16-02-2011 13:19 » 

Это ссылка на managed-объект. В отличие от стандартной C++-ной ссылки, это специальная ссылка на объекты, временем жизни которых управляет сборщик мусора.

В C# было бы просто MyGeneric<T>, но в C++ так нельзя, потому что это означало бы объект на стеке. С другой стороны, обычный указатель и обычная ссылка не годятся, каждый по своей причине (и оба вместе - потому что их стандартное поведение отличается от ^). Поэтому - такое вот расширение синтаксиса для managed C++, чтобы на уровне языка обеспечивать сборку мусора.
« Последнее редактирование: 16-02-2011 13:21 от Вад » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 16-02-2011 13:27 » 

Тут ещё следует добавить, что создаются такие объекты с помощью оператора gcnew, а не обычного new. И для них нужно использовать константу nullptr вместо NULL.

X x; - обычный C++ объект на стеке.
X &y = x; - обычная C++ ссылка на объект.
X *x; - указатель на C++ объект (нередко объект создаётся в куче).
X ^x; - указатель на .NET объект (всегда создаётся в куче, контролируется сборщиком мусора).
Y %y = ...; - .NET ссылка на объект или указатель.
« Последнее редактирование: 16-02-2011 13:35 от Dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
ezus
Опытный

il
Offline Offline

« Ответ #3 : 16-02-2011 13:56 » 

Спасибо, и уже и сам дошел до чего-то подобного,
Но где об этом можно прочитать?


Молчу,Молчу,Молчу,Молчу,Молчу, об качестве, логичности, полноте и юзабилити 2010-го help-а.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 16-02-2011 15:27 » 

ezus, я в таких случаях цепляюсь за какое-нибудь ключевое слово (хоть то же gcnew) и ищу статьи про него. Из этих статей ведут ссылки на другие статьи - так можно прочитать если не всё, то многое по теме. Ко всему прочему в MSDN всегда есть статьи о конкретных вещах и более обобщённые о методах и приёмах программирования, обзоры технологий - всё это с перекрёстными ссылками.

Но главное при этом, чётко поставить для себя вопрос: с чем хочется разобраться, какую задачу решить. Абстрактрое "почитать о чём-нибудь на тему" для работы с MSDN не подходит - это технический справочник, а не полное собрание сочинений философской школы.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
ezus
Опытный

il
Offline Offline

« Ответ #5 : 17-02-2011 07:11 » 

А что может быть конкретнее вопроса "Что такое ^ в синтаксисе языка С++ в среде .NET"?"
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 17-02-2011 10:38 » 

ezus, ты предлагаешь встроить в MSDN семантический анализатор запросов, более интеллектуальный, нежели поисковые движки интернета?

Это в интернете на форумах задают вопросы вида "Что такое ^?"; ты видел хоть один справочник, где бы содержалась такая фраза, по которой информация была бы сгруппирована так, чтобы представляла законченный ответ?

Признаться, мне не понятно, почему ты из тему в тему ожидаешь каких-то чудес от разных технологий... Но, тем не менее, Microsoft работает в этом направлении, и в MSDN на сайте уже встроен поисковый движок Bing, который с вопросами, подобными твоему, справляется лучше, чем простое множество индексированных фраз.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
ezus
Опытный

il
Offline Offline

« Ответ #7 : 20-02-2011 09:12 » new

Dimka, Да, конечно, ты прав.
Я стал задавать идиотские поисковые образы только после того, как очевидный для меня путь не дал результатов.
А путь этот: описание языка, лексика, синтаксис, операторы, и т.п.
Но получал всевозможные списка, которые содержали все кроме ^.

Цитата
почему ты из тему в тему ожидаешь каких-то чудес от разных технологий.
Никаких чудес я не ожидаю, а ожидаю только то, что уже где-то есть или было. И не понимаю, почему этого нет тут.

А вообще-то ты сново прав, я, пожалуй, слишком мечтатель.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines