• 技术文章 >后端开发 >C#.Net教程

    什么是虚函数

    清浅清浅2020-10-13 10:54:52原创11479

    虚函数是指:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,即被virtual关键字修饰的成员函数;格式为“virtual 函数返回类型 函数名(参数表) {函数体}”。

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

    简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。

    首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义它为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。

    例:

    class A
    {
    public:
    virtual void foo()
    {
    cout<<"A::foo() is called"<<endl;
    }
    };
    class B:public A
    {
    public:
    void foo()
    {
    cout<<"B::foo() is called"<<endl;
    }
    };
    int main(void)
    {
    A *a = new B();
    a->foo(); // 在这里,a虽然是指向A的指针,但是被调用的函数(foo)却是B的!
    return 0;
    }

    这个例子是虚函数的一个典型应用,通过这个例子,也许你就对虚函数有了一些概念。它虚就虚在所谓“推迟联编”或者“动态联编”上,一个类函数的调用并不是在编译时刻被确定的,而是在运行时刻被确定的。由于编写代码的时候并不能确定被调用的是基类的函数还是哪个派生类的函数,所以被成为“虚”函数。 虚函数只能借助于指针或者引用来达到多态的效果。

    以上就是什么是虚函数的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:虚函数
    上一篇:c语言需要什么基础 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • C#之虚函数• C++11新特性 - 多态和虚函数,override说明符• 探索C++虚函数在g++中的实现(动多态)_虚函数表剖析
    1/1

    PHP中文网