什么是c++虚函数,虚函数的作用和使用方法

如题所述

  在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。


  虚函数定义:简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异,而采用不同的策略。


  虚函数的作用:用同一个调用形式,既能调用派生类又能调用基类的同名函数。


  虚函数的使用方法是:

    在基类用virtual声明成员函数为虚函数。
    这样就可以在派生类中重新定义此函数,为它赋予新的功能,并能方便地被调用。在类外定义虚函数时,不必再加virtual。

    在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同,并根据派生类的需要重新定义函数体。
    C++规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数。因此在派生类重新声明该虚函数时,可以加virtual,也可以不加,但习惯上一般在每一层声明该函数时都加virtual,使程序更加清晰。如果在派生类中没有对基类的虚函数重新定义,则派生类简单地继承其直接基类的虚函数。

    定义一个指向基类对象的指针变量,并使它指向同一类族中需要调用该函数的对象。

    通过该指针变量调用此虚函数,此时调用的就是指针变量指向的对象的同名函数。
    通过虚函数与指向基类对象的指针变量的配合使用,就能方便地调用同一类族中不同类的同名函数,只要先用基类指针指向即可。如果指针不断地指向同一类族中不同类的对象,就能不断地调用这些对象中的同名函数。这就如同前面说的,不断地告诉出租车司机要去的目的地,然后司机把你送到你要去的地方。  

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-06-25
当一个基类或虚基类派生了多个子类时,并且这些子类都重写了基类的一个虚函数,那么当你创建了多个子类对象时,可以把这些对象组成一个基类数组,通过类基对象或基类对象指针可以调用同一个函数名而执行的是不同的子类的函数,这就是虚函数最根本的用途,这是一个后期绑定机制,在编译前,对象的类型是不可知的。在编译时才确定对象的类型,从而调用合适的函数。
class A
{
public:
A();
void f1();
virtual void f2();
virtual void f3()=0;
virtual ~A();
};
class B : public A
{
public:
B();
void f1();
void f2();
void f3();
virtual ~B();
};
int main(int argc, char* argv[])
{
A *m_j=new B();
m_j->f1();
m_j->f2();
m_j->f3();
delete m_j;
return 0;
}本回答被提问者和网友采纳

什么是c++虚函数,虚函数的作用和使用方法
虚函数定义:简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异,而采用不同的策略。虚函数的作用:用同一个调用形式,既能调用派生类又能...

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

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

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

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

求教,c++中什么时候使用虚函数??
虚函数就是在基类中被关键字virtual说明,并在派生类中重新定义的函数。虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。从以上的定义来看,需函数简单的说就是为了让基类指针能够指向派生类中与基类同名的函数而引进的,举个简单的例子...

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

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

C++中虚函数和纯虚函数的区别
1. 声明了虚函数的类,该函数是已实现的,即使为空实现。其作用是允许这个函数在子类中重写,以便编译器可以使用动态绑定实现多态(即父类指针指向子类对象,调用子类方法)。而纯虚函数只是在基类中的一个函数定义,即一个函数声明,具体的实现需要留到子类中。2. 虚函数在子类中也可以不进行重写(...

c中的虚函数有什么作用
在C++编程中,虚函数扮演着至关重要的角色。它们的核心作用在于实现多态性,这是一种编程理念,旨在将接口与具体的实现分离,让程序可以根据对象的实际类型动态调用相应的方法,而不必关心其具体的实现细节。通过这种方式,即使两个类有共同的方法名,但由于它们各自的特性和行为差异,可以采用不同的策略...

相似回答