В чем смысл этого странного синтаксиса - PullRequest
2 голосов
/ 16 февраля 2011

Сегодня я увидел следующий синтаксис. Кто-нибудь может сказать мне значение этого:

System::ComponentModel::Container ^components; 

Я получил этот код в Visual C ++ после того, как использовал мастер для создания службы.

Ответы [ 3 ]

7 голосов
/ 16 февраля 2011

Оператор ^ (не путать с двоичным оператором XOR) специфичен для C ++ / CLI.

Он используется для объявления дескриптора управляемого объекта .NET.

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

Этот синтаксис заменяет управляемый C ++__gc указатели расширений.

Более подробную информацию можно найти здесь: http://en.wikipedia.org/wiki/C%2B%2B/CLI

4 голосов
/ 16 февраля 2011

Это дескриптор C ++ / CLI.C ++ / CLI - это управляемое расширение Microsoft для C ++, обеспечивающее совместимость с .NET CLR.

Подробнее о C ++ / CLI .

читайте здесь.
1 голос
/ 16 февраля 2011

Это управляемый C ++, который не является C ++.

Строка определяет переменные компоненты, которые являются управляемыми указателями на System :: ComponentModel :: Container

...