`
韩冬冬
  • 浏览: 13746 次
  • 性别: 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()

 

分享到:
评论

相关推荐

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

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

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

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

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

    主要介绍了简述C++中虚拟函数的内存分配机制,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下

    C++的虚拟继承机制

    比如:虚函数必须要通过一种间接的运行时(而不是编译时)机制才能够激活(调用)的函数,而虚继承也是必须在运行时才能够进行定位访问的一种体制。存在,但间接。其中关键在于存在、间接和共享这三种特征。

    C++之多态实现机制剖析

    C++虚拟与多态学习,帮你更深刻的理解虚拟与多态,更深刻的理解C++。技术更上一层楼

    从汇编看c++的虚拟继承以及其内存布局

    先看第一种简单的情形,所有类中没有任何虚函数的菱形继承。  下面是c++源码: class Top {//虚基类 public:  int i;  Top(int ii) {  i = ii;  } }; class Left : public virtual Top { public: ...

    C++面向对象特性实现机制的初步分析

    1.1 程序对内存的使用方法 1.2 C++ Class内存格局 1.3 编译期和执行期 <br/>2封装 2.1 封装的目的和意义 2.2 封装的实现机制 2.2.1 类成员函数的调用方法 2.2.2 封装的性能问题...

    Advanced.C++.Programming.Styles.and.Idioms (Advanced C++中文版)

    本书还展示了C++语言间接支持的核心习惯用法,诸如虚拟构造函数、原型对象以及高级垃圾收集技术。 本书要点: .展示了使用C++高级技术所获得的好处和潜在的缺陷。 .用少而精的例子展示如何有效地组合C++抽象机制。...

    深度探索C++对象模型(清晰版).pdf

    本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。这本书让你知道:一旦你能够了解底层实现模型,你的程序代码将获得多么大的效率。...

    Visual C++权威剖析

    第1篇阐述C++的关键语法,包括重载、虚拟函数、静态成员、类模板、多重继承和内嵌类等内容;第2篇介绍MFC的核心机制,重点剖析窗口封装类CWnd及其派生类,以及Windows窗口操作的相关内容,阐释了MFC的消息映射与消息...

    Visual C++ 权威剖析——MFC的原理、机制与开发实例.part3/6

    第1篇阐述C++的关键语法,包括重载、虚拟函数、静态成员、类模板、多重继承和内嵌类等内容;第2篇介绍MFC的核心机制,重点剖析窗口封装类CWnd及其派生类,以及Windows窗口操作的相关内容,阐释了MFC的消息映射与消息...

    Visual C++ 权威剖析——MFC的原理、机制与开发实例.part1/6

    第1篇阐述C++的关键语法,包括重载、虚拟函数、静态成员、类模板、多重继承和内嵌类等内容;第2篇介绍MFC的核心机制,重点剖析窗口封装类CWnd及其派生类,以及Windows窗口操作的相关内容,阐释了MFC的消息映射与消息...

    Visual C++ 权威剖析——MFC的原理、机制与开发实例.part5/6

    第1篇阐述C++的关键语法,包括重载、虚拟函数、静态成员、类模板、多重继承和内嵌类等内容;第2篇介绍MFC的核心机制,重点剖析窗口封装类CWnd及其派生类,以及Windows窗口操作的相关内容,阐释了MFC的消息映射与消息...

    深度探索C++对象模型 PDF中文清晰版

    《深度探索C++对象模型》专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。这本书让你知道:一旦你能够了解底层实现模型,你的程序代码将获得...

    解析C++中的虚拟函数及其静态类型和动态类型

    虚拟函数是C++语言引入的一个很重要的特性,它提供了“动态绑定”机制,正是这一机制使得继承的语义变得相对明晰。 (1)基类抽象了通用的数据及操作,就数据而言,如果该数据成员在各派生类中都需要用到,那么就...

    Windows内存管理机制及C++内存分配

    从进程空间,内存状态,虚拟内存,内存映射文件,堆,堆栈方面,介绍了Windows内存管理机制及C++内存分配。《windows核心编程》中的精华浓缩。

    深度探索C++对象模型2012版.rar

    本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。这本书让你知道:一旦你能够了解底层实现模型,你的程序代码将获得多么大的效率。...

    《深度探索C++对象模型》(Stanley B·Lippman[美] 著,侯捷 译)

    对于C++底层机制感兴趣的读者,这本书会给你“漫卷诗书喜欲狂”的感觉。 了解C++ Object Model,是学习Component ObjectModel的最短路线。 如果你是一位C++程序员,渴望对于底层知识获得一个完整的了解,那么Inside ...

    深入探索C++对象模型-总结笔记.pdf

    本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。这本书让你知道:一旦你能够了解底层实现模型,你的程序代码将获得多么大的效率。...

    全国计算机二级C++等级考试真题及答案.pdf

    类的继承是C++语言的一种基本机制,派生类可以继承基类的成员变量和成员函数。如果派生类以public方式继承基类,那么基类的protected成员和public成员在派生类中的访问类型分别是protected和public。 运算符重载 ...

Global site tag (gtag.js) - Google Analytics