Здравствуйте, sergii.p, Вы писали:
SP>·>Как по мне, вызов метода — это частный случай отправки сообщения: синхронно, с получением результата, ровно одному получателю.
SP>мне кажется ключевое, что мы теряем всю информацию о контексте выполнения. И тогда такие хотелки невозможно реализовать:
SP>SP>void consume_A(A & o) { o.f(); /* Здесь вызывается f из A */ }
SP>void consume_B(B & o) { o.f(); /* Здесь вызывается f из B */ }
SP>
Честно скажу, что я очень сомневаюсь в оправданности таких хотелкок. И вообще с какого бодуна такие хотелки должны как-то улучшать ООПшность — хз.
В плюсах, кстати, такое можно через операторы преобразования типа реализовать, афаир, вместо наследования D от A и B.
SP>Конечно контекст может быть вложен в сообщение вручную, но тогда это ничем не отличается от вызова двух различных методов с разными именами.
Ну если в системе отправки сообщений как-то потребуется организовать требование "ровно одному получателю" — то так и получится.