Управляемый класс C ++ ref - PullRequest
32 голосов
/ 13 января 2011

Любой хороший сайт или объяснение того, что такое ref class и когда объявлять класс "ref class"?

Мне не хватило объяснения по msdn,

base_type (опционально)

Базовый тип. Класс ref или структура ref могут наследовать от нуля или более управляемых интерфейсов и от нуля или одного типа ref. Класс значений или структура значений могут наследоваться только от нуля или более управляемых интерфейсов.

исх

Ключевое слово ref сообщает компилятору, что класс или структура будут размещены в куче, а ссылка на них будет передана функциям или сохранена в членах класса. Ключевое слово value сообщает компилятору, что все данные в классе или структуре передаются в функции или хранятся в членах.

1 Ответ

52 голосов
/ 13 января 2011

По сути, ref class - это класс CLR.Это эквивалент class в C #.

Это создает ссылочный тип, управляемый CLR.Если вы хотите создать класс, который можно использовать из C #, вы обычно создаете ref class.(ref struct, кстати, делает то же самое, но со стандартным классом C ++ по сравнению с правилами доступа по умолчанию для struct.)

Кроме того, просто для справки - для создания типа значения (struct в C #), вы бы использовали value class или value struct.

Хорошим объяснением многих из этих новых ключевых слов является сообщение Херба Саттера о C ++ / CLI Keywords .Это полезный справочник, если вы новичок в C ++ / CLI, но имеете твердый фон в C ++.

...