相关疑难解决方法(0)

描述C++中虚函数的最简洁但最准确的方法是什么?

被要求描述虚拟功能是什么似乎是评估基本C++知识的访谈中最常见的问题之一.然而,经过几年的C++编程,我仍然有一种不舒服的感觉,我真的不明白如何最好地定义它们是什么.

如果我咨询维基百科,我看到虚函数的定义是:

"在面向对象的编程中,虚函数或虚方法是一种函数或方法,其行为可以通过具有相同签名的函数在继承类中重写"

这个定义看起来简单而优雅,而不是C++特有的.但对我而言,似乎并没有捕获C++中虚函数的概念,因为非虚函数也可以通过具有相同签名的函数在继承类中被覆盖.

如果我被要求描述虚拟函数是非正式的,我会说一些关于"它是一种方法的指针,当你通过基类指针调用它时,调用派生类中定义的它的版本,如果指针实际指向派生类的实例".这似乎不是一个非常优雅的概念描述.我知道,有人说这是多么"多态性"是用C实现++(多态性,据我了解,大概是组织对象为分层结构的整体思路),但我不知道一个华丽的方式来理解或解释机制比通过指针经过示例.

我想我对于虚函数的"指针"描述是否是他们定义的基础,或者只是它们在C++中实现的附带事件感到困惑.

c++ oop polymorphism virtual function

6
推荐指数
1
解决办法
762
查看次数

标签 统计

c++ ×1

function ×1

oop ×1

polymorphism ×1

virtual ×1