Информация об изменениях

Сообщение Re: Расскажите про интерфейсы от 18.01.2019 11:02

Изменено 18.01.2019 11:18 Maniacal

Re: Расскажите про интерфейсы
Здравствуйте, Khimik, Вы писали:

K>Я выучил что такое классы, но не осилил интерфейсы. Расскажите пожалуйста понятно, что это такое.

K>Я одно время думал, что интерфейс – это такой абстрактный класс, который поддерживает множественное наследование, поэтому его можно добавить к реальному (не абстрактному) классу при наследовании, соответственно расширив набор функций этого класса. А переменные в интерфейсе есть?

Всё верно.

K>Вот пример использования интерфейсов для реализации умных указателей, который мне подсказали. Исходный код:

K>[...skipped...]

А вот в примерах не интерфейсы, а дженерики (аналог шаблонов в C++).

K>Я не понимаю суть этого кода. Например где хранится счётчик, сколько элементов s было создано? И в каких участках кода проверяется, не пора ли удалить неиспользуемые элементы?


Счётчик и проверка хранится внутри реализации класса Shared<>
Re: Расскажите про интерфейсы
Здравствуйте, Khimik, Вы писали:

K>Я выучил что такое классы, но не осилил интерфейсы. Расскажите пожалуйста понятно, что это такое.

K>Я одно время думал, что интерфейс – это такой абстрактный класс, который поддерживает множественное наследование, поэтому его можно добавить к реальному (не абстрактному) классу при наследовании, соответственно расширив набор функций этого класса. А переменные в интерфейсе есть?

Всё верно. Переменный по идеологии не положено. Properties в интерфейсах можно, это же по сути set/get

K>Вот пример использования интерфейсов для реализации умных указателей, который мне подсказали. Исходный код:

K>[...skipped...]

А вот в примерах не интерфейсы, а дженерики (аналог шаблонов в C++).

K>Я не понимаю суть этого кода. Например где хранится счётчик, сколько элементов s было создано? И в каких участках кода проверяется, не пора ли удалить неиспользуемые элементы?


Счётчик и проверка хранится внутри реализации класса Shared<>