所以我对C ++中的虚函数概念不熟悉,像this这样的线程很好地销售了这个概念。好的,我确信。
但为什么虚拟功能称为“虚拟”?我的意思是这些功能就像'具体' 像往常一样的功能/方法不是吗?如果有人能解释这个词的选择 “虚拟”用于命名这个概念,这将是很棒的。
答案 0 :(得分:10)
虚拟性,具有某种属性而不分享其(真实的或想象的)物理形式的质量
^ http://en.wikipedia.org/wiki/Virtual
C ++虚函数似乎是一个普通的函数(“具有属性”),但是将通过声明或通过内联实现来共享将被调用的实现。
答案 1 :(得分:10)
'virtual function'表示一个成员函数,其中特定的实现将取决于在运行时调用它的对象的类型。该语言的编译器和运行时支持旨在实现这一目标。
C ++中的关键字'virtual'取自Simula,给Bjarne Stroustrup留下了深刻的印象。这里有更多背景:Pure virtual or abstract, what's in a name?
.. SIMULA 67 Common Base Language(1970)..似乎是第一种将OO关键词引入 class , object 以及的语言虚拟作为正式概念。