<分区>
为什么 C++、C# 和 Ada 95 中的默认决定是使用静态方法绑定(bind),而不是动态方法绑定(bind)。
实现速度的提高是否值得抽象和可重用性的损失?
<分区>
为什么 C++、C# 和 Ada 95 中的默认决定是使用静态方法绑定(bind),而不是动态方法绑定(bind)。
实现速度的提高是否值得抽象和可重用性的损失?
最佳答案
一般来说,您可以考虑必须为可扩展性设计基类。如果一个成员函数(使用 C++ 词汇表)没有被设计为被覆盖,那么在实践中覆盖它很有可能是不可能的,并且可以肯定的是,如果不了解类设计者的知识,它是不可能的think 是实现细节,如有更改,恕不另行通知。
两种语言的一些额外注意事项(我对 C# 的了解还不足以写它):
如果选择不同,Ada 95 将与 Ada 83 发生兼容性问题。考虑到 Ada 95 的整个对象模型,以不同的方式进行处理是没有意义的(但您可以认为兼容性是选择对象模型的一个因素)。
对于 C++,性能当然是一个因素。 你不用为你不用的东西买单原则以及将 C++ 当作一个更好的 C 来使用的可能性对它的成功起到了很大的帮助。
关于c# - 为什么有些语言更喜欢静态方法绑定(bind)而不是动态方法绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5699378/