虚函数与纯虚函数 举例说明虚函数在类的继承中的作用?
浏览量:1983
时间:2021-03-13 18:51:20
作者:admin
举例说明虚函数在类的继承中的作用?
虚函数是类中声明为虚的成员函数。当编译器看到这样一个函数是通过指针或引用调用的时,它会对其执行后期绑定,即通过指针(或引用)所指向的类的类型信息来确定该函数属于哪个类。通常,这样的指针或引用被声明为基类的,基类可以指向基类或派生类的对象。具体的例子可以在网上或相关的教科书上找到。主要是要进一步理解面向对象的概念。例如:有一个类的继承结构。父类是a,子类B声明一个虚函数vf()和a的指针PA。当PA=newa()时,PA->vf()调用父类a的函数。当PA=newb()时,PA->vf()调用子类B的函数这应该是后绑定
这种情况更复杂。以米斯吉亚为例。在计算机上,C是8个字节,也就是指向虚拟表的指针的大小。为此,我想补充一点知识:空类最常用作基类。此时,它们可能占用4个或更多字节进行对齐。但是这会浪费空间,特别是当多重继承多个空基类时。因此编译器有空的基类优化(ebco)[1],因此没有非静态数据成员和虚拟函数的基类实际上占用0字节。因为BS说,为了确保两个不同的对象有不同的地址--“为了确保两个不同对象的头饰应该是不同的”,它用这1个字节在内存中占据不同的地址。因为这些空类没有赋值的意义,所以不需要占用更多内存。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。
上一篇
e2e 什么是e2e