Pull to refresh

Comments 10

Таким образом, сигнатура метода нарушается и все известные мне типизированные языки (в том числе и haxe) пресекут попытку переопределить метод с другим возвращаемым типом.

C++ не пресечёт. Виртуальная функция в наследуемом классе может возвращать указатель не на тот же тип, что возвращается в базовом, а на наследника возвращаемого типа (не обязательно того же типа, что и сам класс и его наследник).
может возвращать указатель
Для полноты: либо ссылку.

Java, кстати, тоже поддерживает ковариантность типов возвращаемых значений. И C#, скорее всего, аналогично.
Такая подойдет?
Вы меня не так поняли. Можно возвращать ссылку на объект (для них ковариантность тоже работает), я не про ссылки на статьи.
Да, я вас не правильно понял, извините.
C# так не может — но у него есть расширения, которыми так же можно решить эту задачу.
Очень приятно видеть язык с приличными (а не урезанными) макросами, но очень удивляет пассаж «мне не доводилось видеть такого в других языках», потому что если судить по описанию, то это немного ухудшенная версия хорошо известной «молодой» технологии (ей всего-то полвека, LOL). Или я чего-то не понимаю?
Да, вы правы, как-то я пропустил макропрограммирование для лиспа. Если бы не ваш комментарий, может и не узнал бы никогда что такое есть :) Спасибо!
Sign up to leave a comment.

Articles