`

虚函数

    博客分类:
  • c++
 
阅读更多

A * a = new B(); //父类引用指向子类对象

a->foo(); // 在这里,a虽然是指向A的指针,但是被调用的函数(foo)却是B的!

虚函数虚就虚在所谓“推迟联编”或者“动态联编”上,一个类函数的调用并不是在编译时刻被确定的,而是在运行时刻被确定的。由于编写代码的时候并不能确定被调用的是基类的函数还是哪个派生类的函数,所以被成为“虚”函数。

纯虚函数:

  class A

   {

  public:

  virtual void foo()=0; // =0标志一个虚函数为纯虚函数

  };

  一个函数声明为纯虚后,纯虚函数的意思是:我是一个抽象类!不要把我实例化!纯虚函数用来规范派生类的行为,实际上就是所谓的“接口”。它告诉使用者,我的派生类都会有这个函数。

分享到:
评论

相关推荐

    C++虚函数实现原理

    ### C++虚函数实现原理 #### 一、引言 在C++中,虚函数机制是面向对象编程中实现多态的重要方式之一。通过虚函数,可以在基类中定义一个接口,并由派生类来具体实现该接口的功能,进而允许在运行时根据对象的实际...

    构造函数不能声明为虚函数,析构函数可以声明为虚函数

    ### 构造函数不能声明为虚函数 构造函数在C++中主要用于初始化对象的状态,确保对象在使用前具有有效的初始值。构造函数不能声明为虚函数的原因主要涉及以下几个方面: 1. **对象类型未知**:当创建一个对象时,...

    构造函数不能声明为虚函数的原因及分析

    1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有...

    C++虚函数表测试源码

    在C++编程语言中,虚函数表(Virtual Function Table,简称vtable)是实现多态性的一个关键机制。本文将深入探讨C++虚函数表的相关知识点,并通过标题中提到的测试源码进行详细讲解。 首先,理解虚函数的定义:在...

    c++虚函数与虚函数表

    ### C++虚函数与虚函数表的理解 #### 一、虚函数的概念 在C++中,虚函数(Virtual Function)是一种特殊类型的成员函数,它允许基类指针或引用指向派生类对象,并通过该基类指针或引用调用派生类中重写的同名函数。...

    指针高级应用_虚函数

    虚函数的关键在于虚函数表(vtable),这是一个由编译器自动创建的动态查找表,其中包含了类中所有虚函数的地址。当我们通过基类指针调用虚函数时,实际上是通过这个vtable找到实际的函数地址并执行。 强制类型转换...

    虚函数表解析

    当通过基类的指针或者引用调用一个虚函数时,编译器会首先通过对象指针找到对应的虚函数表,然后根据调用的虚函数名在虚函数表中查找对应的函数地址,进而调用正确的函数实现。 #### 三、虚函数表的结构与实现 虚...

    c++中子类对象不能调用父类中的虚函数

    同时,`虚函数`是实现多态性的重要机制,这对于面向对象编程至关重要。然而,有一个重要的概念是:子类对象不能直接调用父类中的虚函数。下面我们将深入探讨这些知识点。 首先,让我们了解`指针`和`引用`。在C++中...

    C++虚函数及虚函数表解析

    C++的虚函数和虚函数表是面向对象编程中实现多态性的重要机制。多态性允许通过基类指针或引用调用不同子类的重写方法,从而实现更灵活的设计和代码复用。 虚函数(Virtual Function)是基类中声明的一种特殊函数,...

    C++实验六 多态性和虚函数的应用 课程 实验报告

    在C++编程语言中,多态性和虚函数是面向对象编程的重要特性,它们允许程序员创建灵活且可扩展的代码结构。本次实验旨在深入理解和熟练运用这两个概念。实验报告的标题和描述表明,这是一个关于C++实验,特别是针对多...

    利用虚函数计算各种图形面积

    在这个程序中,“利用虚函数计算各种图形面积”是核心功能,涉及到的主要知识点包括虚函数、基类与派生类、多态以及不同几何图形的面积计算。 首先,我们要理解虚函数的概念。在C++中,虚函数是基类声明的一种成员...

    c++多态性与虚函数练习题

    ### C++多态性与虚函数知识点解析 #### 一、多态性的概念 多态性是面向对象编程的一个核心特性,它允许我们通过基类的接口来操作派生类的对象。这种特性使得代码更加灵活且易于扩展。在C++中,多态性主要通过虚函数...

    虚函数.ppt

    虚函数是面向对象编程中的一个重要概念,特别是在C++语言中被广泛应用。虚函数允许我们实现多态性,这是面向对象设计的关键特性之一。本讲座主要介绍了虚函数的基本概念、使用方式以及它在实际编程中的作用。 虚...

    C++ 虚函数表详解

    3. 虚函数表的结构:虚函数表的结构可以用一个图来表示,其中每个结点对应一个虚函数的地址,并且最后一个结点是虚函数表的结束结点,标志着虚函数表的结束。 4. 继承中的虚函数表:在继承中,虚函数表的实现机制也...

    虚函数表工作原理

    虚函数表是C++实现多态性的重要机制,主要针对含有虚函数的类。多态允许我们使用父类指针调用子类重写的成员函数,实现动态绑定或运行时绑定。虚函数表(Virtual Table,简称V-Table)就是一个存放类中所有虚函数...

    C++ 多态 虚函数 虚函数表 最是详细

    高质量的C++多态讲解,详细讲解虚函数,虚函数表,虚函数继承,虚函数继承下的内存分配等

    虚函数与const指针

    虚函数与const指针 虚函数是C++多态的一种表现形式。虚函数是基类的非静态成员函数,其访问权限可以是 protected 或 public。在基类的类定义中定义虚函数的一般形式为:`virtual 函数返回值类型 虚函数名(形参表)...

    用C++实现虚函数

    虚函数是C++中面向对象编程的一个重要特性,它允许我们通过基类指针或引用调用派生类中的重写方法,实现多态性。本文将深入探讨如何使用C++实现虚函数,包括虚函数的基本用法、虚析构函数的概念以及如何计算类的大小...

Global site tag (gtag.js) - Google Analytics