所以我对 C++ 中的虚函数概念很陌生,像这样的线程很好地推销了这个概念。好的,我确信。
但是为什么虚函数被称为“虚函数”呢?我的意思是这样的功能和通常的功能/方法一样“具体”,不是吗?如果有人可以解释选择“虚拟”这个词来命名这个概念,那就太好了。
“虚拟函数”是指成员函数,其中特定实现将取决于运行时调用它的对象的类型。该语言的编译器和运行时支持努力实现这一点。
C++ 中的关键字“virtual”取自 Simula,这给 Bjarne Stroustrup 留下了深刻印象。这里有更多背景:纯虚拟或抽象,名称是什么?
.. SIMULA 67 Common Base Language (1970) .. 似乎是第一个将 OO 关键字作为class、object和virtual作为正式概念引入的语言。
虚拟性,具有某物的属性而不共享其(真实或想象的)物理形式的质量
^ http://en.wikipedia.org/wiki/Virtual
C++ 虚函数看起来是一个普通函数(“具有的属性”),但将被调用的实现不会通过声明或内联实现共享出去。