Класс интерфейса C ++ / CLI против структуры интерфейса - PullRequest
6 голосов
/ 29 июля 2010

В чем разница между следующими объявлениями (в C ++ / CLI):

public interface class IC {};

public interface struct IS {};

Подобные ситуации:

public enum class EC {};

public enum struct ES {};

?

Ответы [ 2 ]

10 голосов
/ 30 июля 2010

Они идентичны.

Подробнее см. Ссылка на класс интерфейса MSDN , под примечаниями:

структура интерфейса эквивалентна классу интерфейса.


Я полагаю, что Microsoft решила разрешить оба варианта, чтобы сохранить согласованность с ref class / ref struct и value class / value struct. Однако, поскольку интерфейсы не имеют закрытых членов, для интерфейса эти два оператора становятся абсолютно одинаковыми.

1 голос
/ 30 июля 2010

Нет никакой разницы.Они эквивалентны.

Имейте в виду, что в «реальном» C ++ нет практически никакой разницы между структурой и классом, за исключением доступности членов по умолчанию.Так что в параллельной вселенной C ++ / CLI, где правила доступности в любом случае различны, совсем не безумие, что они эквивалентны.

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