`
韩冬冬
  • 浏览: 14253 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

c++ 类的虚拟机制

阅读更多
以下类的定义只是为了说明虚拟机制而设计:
class Animal{
public:
int getNum();
}

class Bird : public Animal
{
public:
int getNum();
}

Animal *pa = new Bird();

1、pa->getNum();此时调用的是Animal类的getNum()

修改Bird类为:
class Bird : public Animal
{
public:
int getNum();
virtual int getAge();
}

2、pa->getAge();编译错误:Animal类中不存在getAge()

重新定义Animal与Bird类:
class Animal{
public:
virtual int getNum();
}

class Bird : public Animal
{
public:
int getNum();
}

3、pa->getNum();此时调用的是Bird类中的getNum()

 

class Query{
public:
virtual void show() = 0;
}
包含纯虚拟函数的类为抽象基类。试图创建一个抽象基类的独立对象会导致编译时刻错误。

虚拟函数的静态调用:
假如Query类以及派生类NameQuery定义了虚拟函数 isA();
//在编译时刻静态调用 isA()
Query *pq = new NameQuery( "dumbo" );
pq->Query::isA();//破坏了虚拟机制,调用基类的isA()

 

分享到:
评论

相关推荐

    基于C++的虚拟串口通讯

    在C++中,这通常涉及到对文件描述符的操作,如`read()`和`write()`函数,以及错误处理和同步机制,如`select()`或`poll()`。开发者必须确保正确设置串口参数,如波特率、数据位、停止位和校验位,以确保与目标设备的...

    c++ 实现虚拟文件系统

    根据给定的信息,我们可以推断出作者正在尝试使用C++实现一个简单的虚拟文件系统。下面将详细介绍该虚拟文件系统的组成部分及其工作原理。 ### 一、虚拟文件系统结构 #### 1. `diskIniTop` 结构体 这个结构体包含...

    C++虚拟屏幕键盘源代码

    在C++中开发虚拟屏幕键盘涉及到多个关键知识点: 1. **图形用户界面(GUI)**:虚拟键盘是GUI的一个组成部分,因此需要对Windows API、Qt库、wxWidgets、GTK+或其他C++支持的GUI框架有深入理解。这些库提供了创建窗口...

    内存虚拟硬盘C++源码

    下面我们将详细探讨内存虚拟硬盘的原理、实现方式以及C++源码在其中的角色。 内存虚拟硬盘的基本原理是将一部分物理内存划分为一个或多个逻辑驱动器,这些驱动器就像传统的硬盘一样可以被操作系统识别并进行读写...

    windows虚拟磁盘c++代码

    总之,“windows虚拟磁盘c++代码”项目涉及到多个复杂的知识点,包括虚拟磁盘技术、C++编程、驱动程序开发以及操作系统I/O机制。理解并掌握这些概念对于实现这样的功能至关重要。通过使用WDK,开发者可以创建出高效...

    操作系统课程设计:用C++实现虚拟内存技术

    通过编写C++程序来模拟这些机制,学生可以直观地理解虚拟内存的工作流程,包括地址转换、页面调度、页面错误处理等。这样的实践项目有助于提高对操作系统底层原理的理解,并培养问题解决和编程能力。 在完成这个...

    c++虚拟桌面实现

    本项目名为"C++虚拟桌面实现",通过C++编程语言编写了一个小型的虚拟桌面程序,特别适合上班族使用。以下将详细解析这个项目的知识点。 1. **C++编程**:C++是一种强大的、通用的面向对象编程语言,以其效率和灵活...

    用C++编写的虚拟存储器源码

    在这个“用C++编写的虚拟存储器源码”中,我们可以看到一个针对分页式虚拟存储管理的模拟实现,涵盖了硬件地址转换、缺页中断处理以及页面调度算法。 首先,我们要理解虚拟存储器的基本原理。虚拟地址空间是每个...

    C++程序的设计机制1 NVI机制.docx

    这就是NVI机制要求的:将虚函数声明为非公有,而将公有函数都声明为非虚——虚拟和公有选其一。 NVI机制的优点是: * 将接口定义和实现分离,提高程序的灵活性和可维护性。 * 避免基类和派生类之间的紧耦合,提高...

    C++虚拟多重继承对象模型讨论-样例

    通过分析样例程序,我们可以更深入地理解虚拟多重继承的工作原理和使用场景,同时也能看到它如何与C++的多态机制相结合,实现更灵活的面向对象设计。在阅读和研究样例时,关注如何声明和初始化虚基类,以及如何通过...

    【操作系统课程设计】使用C++实现模拟虚拟内存系统

    本课程设计的主题是“使用C++实现模拟虚拟内存系统”,旨在让学员深入理解虚拟内存的概念,掌握其工作原理,并通过编程实践提升对操作系统内存管理机制的认知。 虚拟内存是现代操作系统中的核心组成部分,它为每个...

    团队学生技术交流讲座(XXXX)_第2课_理解C++虚拟多态机制.pptx

    【C++虚拟多态机制详解】 在C++编程语言中,多态性是面向对象编程的一个核心特性,它允许我们使用相同的接口处理不同类型的对象,从而实现代码的灵活性和可扩展性。本讲座主要探讨C++中的虚拟多态机制,包括多态性...

    C++虚拟多屏

    "C++虚拟多屏"是利用编程技术实现的一种功能,它允许用户在单个物理显示器上创建并操作多个独立的虚拟屏幕,从而提升工作效率和多任务处理能力。下面将详细介绍这一领域的相关知识点。 首先,虚拟多屏的核心概念是...

    团队学生技术交流讲座(XXXX)_ 第2课_理解C++虚拟多态机制.pptx

    团队学生技术交流讲座(XXXX)_ 第2课_理解C++虚拟多态机制.pptx

    简述C++中虚拟函数的内存分配机制

    C++ 中虚拟函数的内存分配机制 C++ 中虚拟函数的内存分配机制是指在 C++ 编程语言中,虚拟函数的内存分配机制是如何工作的。虚拟函数是 C++ 语法的重点和难点之一,它允许在继承关系中实现多态性。虚拟函数的地址...

    C++虚拟数字键盘 源代码 可扩展

    总的来说,这个C++虚拟数字键盘的源代码提供了一个很好的学习平台,涵盖了面向对象编程、事件驱动编程、GUI设计、错误处理等多个关键知识点。开发者不仅可以借此了解C++的基本语法和编程技巧,还可以深入探究如何...

    类的多态性和虚拟函数的使用

    在C++编程语言中,类的多态性和虚拟函数是面向对象编程的重要特性,它们使得代码更加灵活,可扩展性更强。多态性是对象在不同上下文中表现出不同行为的能力,而虚拟函数则是实现这种多态性的关键机制。本文将深入...

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

    ### C++中虚函数的实现机制 #### 一、虚函数的概念及其重要性 在C++编程语言中,虚函数是实现多态性的关键机制之一。多态性是指同一个操作作用于不同的对象,可以有不同的解释,进而触发不同的行为。在面向对象...

    Visual C++权威剖析:MFC的原理、机制与开发实例.pdf

    第1篇专注于C++的关键语法,涵盖了重载、虚拟函数、静态成员、类模板、多重继承和内嵌类等概念,这些都是C++语言中非常重要的特性,是学习MFC之前必须掌握的基础知识。第2篇介绍了MFC的核心机制,重点分析了窗口封装...

Global site tag (gtag.js) - Google Analytics