`

C++中的虚函数和纯虚函数用法

 
阅读更多

C++中的虚函数和纯虚函数用法

 

1. 虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstract class),而只含有虚函数的类(class)不能被称 $

2. 虚函数可以被直接使用,也可以被子类(sub class)重载以后以多态的形式调用,而纯虚函数必须在子类(sub class)中实现该函数才可以使用 $

只有声明而没有定义。

3. 虚函数和纯虚函数都可以在子类(sub class)中被重载,以多态的形式被调用。

4. 虚函数和纯虚函数通常存在于抽象基类(abstract base class -ABC)之中,被继承的子类重载,目的是提供一个统一的接口。

5. 虚函数的定义形式:virtual    {method body}

    纯虚函数的定义形式:virtual    { } = 0;

    在虚函数和纯虚函数的定义中不能有static标识符,原因很简单,被static修饰的函数在编译时候要求前期bind,然而虚函数却是动态绑定(run-ti$

6. 如果一个类中含有纯虚函数,那么任何试图对该类进行实例化的语句都将导致错误的产生,因为抽象基类(ABC)是不能被直接调用的。必须被子类 $

 

以下为一个简单的虚函数和纯虚寒数的使用演示!

 

#include<iostream>
using namespace std;
//father class
class Virtualbase
{
public:
         virtual void Demon()= 0; //prue virtual function
         virtual void Base() {cout<<"this is farther class"<<endl;}

}

//sub class
class SubVirtual :public Virtualbase
{
public:
    void Demon()
    {
          cout<<" this is SubVirtual!" << endl;
     }

    void Base()
    {
         cout<<"this is subclass Base"<<endl;
     }
}

/* instance class and sample */

int main()
{
        Virtualbase* inst = new SubVirtual(); //multstate pointer
        inst->Demon();
        inst->Base();
//     inst = new Virtualbase();
// inst->Base()
       return 0;

}

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Java与C++在虚函数,纯虚函数上的区别

    ### Java与C++在虚函数、纯虚函数上的区别详解 ...Java通过抽象方法和抽象类来实现多态,而C++则通过虚函数和纯虚函数机制。了解这些差异对于跨语言编程或理解和维护不同语言编写的代码至关重要。

    C++_虚函数和纯虚函数区别(高清版).rar

    在C++编程语言中,虚函数(Virtual Functions)和纯虚函数(Pure Virtual Functions)是面向对象编程的重要特性,它们都是实现多态性的方式,但各自有着不同的应用场景和功能特点。下面将详细解释这两个概念以及它们...

    C++中的虚函数和纯虚函数用法(ZT)

    本文将详细介绍虚函数和纯虚函数的定义、使用方法以及它们之间的区别。 #### 二、虚函数的概念与用法 虚函数是一种特殊的成员函数,它可以在派生类中被重写,并且可以在基类中通过指针或引用调用派生类的版本。虚...

    c++虚函数使用

    在 C++ 中,虚函数的应用非常广泛,例如在 GUI 编程中,用虚函数可以实现按钮的点击事件处理,用虚函数可以实现多态机制,提高代码的复用性和灵活性。 虚函数是 C++ 中的一种强大的机制,允许我们实现多态机制,...

    C++中虚函数与纯虚函数的用法

    本文较为深入的分析了C++中虚函数与纯虚函数的用法,对于学习和掌握面向对象程序设计来说是至关重要的。具体内容如下: 首先,面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承、动态...

    C++虚函数多态和纯虚函数多态的经典示例源码

    总之,C++的虚函数和纯虚函数是实现多态的核心工具。虚函数允许通过基类指针调用派生类的方法,实现运行时多态;而纯虚函数则用于定义抽象基类和接口,确保所有派生类都必须实现某些特定功能。这种灵活性和通用性...

    c++纯虚函数的用法及详解

    ### C++纯虚函数的用法及详解 #### 一、引言 在学习C++的过程中,虚函数是一个重要的概念,特别是在实现多态性时。本文将深入探讨纯虚函数的概念及其在C++中的应用。 #### 二、C++中的多态与虚函数 在C++中,多...

    函数覆盖,虚函数,纯虚函数对比

    在C++编程语言中,函数覆盖、虚函数和纯虚函数是面向对象编程中的关键概念,它们涉及到类的继承和多态性。本文将详细探讨这三个概念,以及它们之间的对比。 1. **函数覆盖(Function Overriding)** 函数覆盖发生...

    虚基类、虚函数与纯虚函数

    总之,虚基类、虚函数和纯虚函数是C++中实现面向对象编程的关键特性,它们分别用于解决多重继承的二义性、实现运行时多态以及强制派生类提供特定功能的实现。理解并掌握这些概念对于编写高效、可扩展的C++程序至关...

    虚函数和纯虚函数.pdf

    在C++编程语言中,虚函数(virtual function)和纯虚函数(pure virtual function)是多态性(polymorphism)实现的关键技术,它们支持程序设计中的一种重要特性,即可以使用指向派生类的基类指针来调用相应派生类的...

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

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

    c++,继承,多态,虚函数,纯虚函数

    而通过虚函数和纯虚函数的使用,能够实现真正的多态性,即同一接口可以在不同类中有不同的实现,提高了代码的灵活性和可扩展性。这些特性都是 C++ 作为一门强大的面向对象编程语言的核心组成部分。

    c++中虚函数和纯虚函数的作用与区别

    在C++编程语言中,虚函数(virtual function)和纯虚函数(pure virtual function)是实现多态性的重要工具,它们允许子类根据自身需求重写基类的行为。以下是这两个概念的详细说明: **虚函数**: 虚函数的引入是...

    C++中虚函数的实现机制

    C++中的虚函数通过使用`vptr`和`vtable`机制,在运行时实现了动态绑定,使得程序可以根据对象的实际类型调用不同的虚函数,从而实现了多态性。理解虚函数的实现机制对于编写高质量、可扩展的C++代码至关重要。

    C++的虚函数和JAVA的抽象函数

    多态性(Polymorphism)是覆盖和重载的综合应用,尤其体现在虚函数和抽象方法的使用上。多态性允许我们通过基类的指针或引用调用派生类的方法,从而实现“一个接口,多种实现”的目标。这种动态绑定的能力是C++和...

    C++之普通成员函数、虚函数以及纯虚函数的区别与用法要点

    纯虚函数是在基类中声明的虚函数,它可以再基类中有定义,且派生类必须定义自己的实现方法。 假设我们有三个类Person、Teacher、Student它们之间的关系如下: 类的关系图 普通成员函数 【Demo1】 根据这个类图...

    C++虚函数表实现聚合(COM)

    在C++编程语言中,虚函数表(Virtual Function Table,简称VFT或VTbl)是实现多态性的重要机制,特别是在面向对象编程中。多态性允许子类重写父类的方法,使得相同的消息可以有不同的行为。虚函数表是这种功能的底层...

    4.2C++之虚函数共5页.pdf.zip

    【标签】"4.2C++之虚函数共5页.pd",虽然标签的格式有误,但我们可以推测它应当是与PDF文件相关的,暗示文档可能探讨了C++虚函数的各个方面。 【压缩包子文件的文件名称列表】: "赚钱项目" - 这个文件名看似与主题...

    [C++][Basic] C++父类中实现的纯虚函数体的测试

    在C++编程语言中,纯虚函数(pure virtual function)是一种特殊的虚函数,它被声明为没有函数体,通常在基类中定义,用于强制所有派生类必须重写这个函数。这种机制是C++多态性的重要组成部分,使得我们可以创建...

Global site tag (gtag.js) - Google Analytics