c++中的虚函数有什么作用?

如题所述

类的三个重要特征:封装、继承、多态性。
其中多态性就是通过函数重载(运算符重载实质上也是函数重载)和虚函数来实现的。
虚函数的作用:在基类用virtual声明成员函数为虚函数,在派生类中重新定义该函数,就可以通过基类指针或引用来访问基类和派生类中的同名函数。
虚函数实现多态性:同一类族中不同类的对象,对同一函数调用做出不同的响应。
多态性其实就是一个接口,多种方法,分为静态多态性和动态多态性,函数重载属于静态多态性,在程序编译时就可确定调用哪个函数,其过程称为静态关联或早期关联,静态多态性又称编译时多态性;虚函数属于动态多态性,在程序运行过程中才动态地确定所调用的是那个对象的函数,其过程称为动态关联或滞后关联,动态多态性又称运行时多态性。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-16
virtual 关键词可以将一个类的函数说明为虚函数
虚函数的主要用处是对派生类实现动态联编.举例说明一下:
class a
{
virtual int func(){return 1;}
}
class b:public a
{
int func(){return 2;}
}
void main()
{
a *p;
p=new b;
p->func();//得到的结果是2.
}
由上面简单的例子可知,一个基类的指针可以指向他的子类,使用该指针调用函数时,如果调用的函数在基类中被说明为虚函数,那么子类中该函数也自动成为虚函数,调用时会根据指针所指向的对象调用相应类的虚函数.实现动态联编.
更详细的说明你可以看一下虚函数表本回答被提问者采纳
第2个回答  2015-09-09
指针的类型是可以强行转来转去的。普通情况你转什么类型就调对应类型的同名函数。但是虚函数实现多态后,尽管可能你把指针转成父类的类型,但是因为创建的时候是子类的类型,它还是会调用子类的这个虚函数。
这样可以统一代码且正确运用子类的新特性。
也因为如此,如果父类虚函数不做实现而=0成为纯虚函数,那么父类就不可以实例化,这个没有实现的虚函数也永远不会调用。因为根据多态的动态联编,总是会调用实例化了的子类的该方法。指针强行转成父类也不会调用纯虚函数。

c中的虚函数有什么作用
c++中的虚函数的作用如下:1、实现多态性,多态性是将接口与实现进行分离。2、实现以共同的方法,但因个体差异而采用不同的策略。3、在有可能成为父类时,虚函数可以被同名子类函数覆盖,安全系数高。4、虚函数的主要作用是对派生类实现动态联编。5、调用的函数在基类中被说明为虚函数,子类中该函数会...

C++中虚函数的作用是什么?它应该怎么用呢?
C++中虚函数的作用:1、简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。2、实现多态性,多态性是将接口与实现进行分离。3、当基类指针指向一个子类对象,通过这个指针调用子类和基类同名成员函数的时候,基类声明为虚函数就会调子类的这个函数,不声明就会调用基类的。C++中虚函数的用法:1、...

c中的虚函数有什么作用
C++中的虚函数是实现动态多态的关键机制之一。虚函数在面向对象的程序设计中的最主要作用是允许在派生类中重写基类中的虚函数,从而允许运行时的动态绑定。这样一来,指向派生类对象的基类指针或引用可以调用派生类中的函数实现,实现了多态性。这是面向对象编程的一个重要特性。下面详细解释虚函数的作用:1...

C++中虚函数的作用和虚函数的工作原理
虚函数在C++中实现多态性,主要作用在于实现动态绑定。基类定义虚函数,子类可以重写该函数。当子类重新定义了父类的虚函数后,当父类的指针指向子类对象的地址时,程序根据对象的实际类型动态调用子类的该函数,而不是父类的函数。这种动态调用发生在运行阶段,称为动态联编。非虚函数的静态联编效率更高,...

c中的虚函数有什么作用
提高了代码的灵活性和安全性。总的来说,C++中的虚函数为程序设计提供了强大的工具,它使得代码更加模块化,易于维护,同时也支持了基于对象的行为变化,是面向对象编程中不可或缺的一部分。通过合理利用虚函数,程序员可以编写出更具弹性和可扩展性的代码。

c++中的虚函数有什么作用?
虚函数的作用:在基类用virtual声明成员函数为虚函数,在派生类中重新定义该函数,就可以通过基类指针或引用来访问基类和派生类中的同名函数。虚函数实现多态性:同一类族中不同类的对象,对同一函数调用做出不同的响应。多态性其实就是一个接口,多种方法,分为静态多态性和动态多态性,函数重载属于静态...

虚函数作用
虚函数的主要作用是实现动态联编,即在程序运行时根据实际对象的类型选择合适的成员函数。在C++中,为了支持多态,我们可以在基类中声明虚函数,然后在派生类中进行重新定义。这种定义方式允许不同类的对象共享相同的接口,但实际行为可以根据对象的实际类型进行调整。当函数前加上"virtual"关键字,该函数就会...

c++中的虚函数是什么?
C++中的虚函数是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多...

中虚函数是什么意思?
中虚函数在C++语言中的应用非常广泛,经常用于面向对象程序设计中。特别是在基于继承的编程中,中虚函数的作用非常明显。在多层继承中,如果父类和子类中都有同名的虚函数,就需要使用中虚函数来解决相同名称的函数调度问题。当然,如果派生类中重新定义该函数,就不需要调用中间基类中的函数。在使用中虚...

c++中的虚函数和普通函数之间的不同
C++的虚函数主要是为了实现多态。基类定义的虚函数,派生类重新定义该函数,这样基类对象指针调用哪一个函数是判断该基类指针的对象的类型。虚函数用virtual关键字修饰,同时开启动态联编技术,动态联编只有程序运行时才能确定调用的函数,在编译阶段是不知道要调用哪一个函数。

相似回答