我读了很多关于如何在c ++中实现multimethod的文章:
答案 0 :(得分:35)
直接从马的嘴里出来:
“我遗憾地拒绝了多方法,因为我喜欢这个想法,但找不到一个接受它的可接受的形式。”
Bjarne Stroustrup, C ++的设计与演变(p297)
后来:
“多方法是C ++的一个有趣的假设。我当时能够设计和实现它们吗?[...]还有什么其他工作可以用来提供设计时间并实施多种方法?“
(p298f)
一般情况下,每当您想要了解某些特定C ++功能为何被实现,或者未实现,或者以现在的方式实现时,并且如果该功能在标准化之前出现,那么您需要阅读D& ; e。
答案 1 :(得分:15)
正如Bjarne多次指出的那样,当人们批评C ++时,它通常会运行:“C ++太大,太复杂,功能太多,而且难以学习 - 你应该真的工作使它更小更简单。哦,当你正在努力的时候,我也有一个非常好的想法,你应该添加杀手功能!“
答案 2 :(得分:9)
仅仅因为它可以完成并不意味着它是一个没有完成的问题。对C ++的一种批评是“Stroustrup接受了所有人都听过的内容,并试图将其包括在内。”
另外,正如Raymond Chen所说,“每个功能都以-100分开始。”也就是说,在你问为什么C ++没有这些东西之前,你应该详细解释它为什么需要它们。否则,由于与之相关的成本,您的功能将处于负值区域。