为什么需要虚函数
MaiziTest13.cpp : 定义控制台应用程序的入口点。
1.代码
#include "stdafx.h"
#include<iostream>
using namespace std;
//基类base定义
class base
{
public:
virtual void disp()
{
cout<<"Hello,base"<<endl;
}
};
class child1:public base
{
public:
void disp()//派生类child1中定义的disp()函数将base类中定义的disp()函数隐藏
{
cout<<"hello,child1"<<endl;
}
};
class child2:public base
{
public:
void disp()
{
cout<<"hello,child2"<<endl;
}
};
void display(base *pb)
{
pb->disp();
}
int _tmain(int argc, _TCHAR* argv[])
{
base *pBase = NULL,obj_base;
obj_base.disp();
pBase = &obj_base;
pBase->disp();
child1 *pchild1 = NULL,obj_child1;
obj_child1.disp();
pchild1 = &obj_child1;
pchild1->disp();
child2 *pchild2 = NULL,obj_child2;
obj_child2.disp();
pchild2 = &obj_child2;
pchild2->disp();
//使用obj_child1的地址为pBase赋值
pBase = &obj_child1;
pBase->disp();
display(&obj_base);
display(&obj_child1);
display(&obj_child2);
return 0;
}
2.运行结果
相关推荐
### C++虚函数实现原理 #### 一、引言 在C++中,虚函数机制是面向对象编程中实现多态的重要方式之一。通过虚函数,可以在基类中定义一个接口,并由派生类来具体实现该接口的功能,进而允许在运行时根据对象的实际...
### C++虚函数与虚函数表的理解 #### 一、虚函数的概念 在C++中,虚函数(Virtual Function)是一种特殊类型的成员函数,它允许基类指针或引用指向派生类对象,并通过该基类指针或引用调用派生类中重写的同名函数。...
C++的虚函数和虚函数表是面向对象编程中实现多态性的重要机制。多态性允许通过基类指针或引用调用不同子类的重写方法,从而实现更灵活的设计和代码复用。 虚函数(Virtual Function)是基类中声明的一种特殊函数,...
### C++虚函数表解析深度剖析 在C++编程语言中,虚函数是实现多态性的关键机制之一,尤其在面向对象编程中扮演着至关重要的角色。本文将深入探讨C++虚函数表(Virtual Table,简称V-Table)的原理与实现细节,以...
C++虚函数表详解 C++中的虚函数表是实现多态机制的关键组件。虚函数表(Virtual Table,简称V-Table)是一种机制,用于存储类的虚函数的地址,解决继承和覆盖的问题,使得父类的指针可以正确地调用子类的成员函数。...
高质量的C++多态讲解,详细讲解虚函数,虚函数表,虚函数继承,虚函数继承下的内存分配等
### C++虚函数调用机制初探 #### 引言 C++作为一种强大的面向对象编程语言,其核心特性之一便是支持多态性(polymorphism)。多态性允许程序员使用基类类型的指针或引用调用派生类的成员函数,这种能力极大地增强了...
在C++编程语言中,虚函数表(Virtual Function Table,简称VFT或VTbl)是实现多态性的重要机制,特别是在面向对象编程中。多态性允许子类重写父类的方法,使得相同的消息可以有不同的行为。虚函数表是这种功能的底层...
多态是C++泛型编程的一种体现,它允许我们使用统一的接口处理不同类型的对象,如模板、RTTI(Run-Time Type Information)和虚函数都是实现多态的方式。 虚函数的实现依赖于虚函数表(Virtual Table,简称V-Table)...
C++虚函数是面向对象编程中的一个重要特性,它允许我们实现多态性,即一个基类指针或引用可以调用派生类重写的成员函数。这种能力在编写可扩展和可复用的代码时非常关键。下面我们将深入探讨C++虚函数的应用及其实现...
本文将深入探讨如何使用C++实现虚函数,包括虚函数的基本用法、虚析构函数的概念以及如何计算类的大小。 首先,虚函数的声明是在基类的定义中完成的,通过在函数声明前加上`virtual`关键字。例如: ```cpp class ...
本文将深入探讨C++虚函数表的相关知识点,并通过标题中提到的测试源码进行详细讲解。 首先,理解虚函数的定义:在C++中,当一个基类的指针或引用指向派生类的对象时,如果该基类有一个虚函数,那么通过指针或引用...
C++中的虚函数通过使用`vptr`和`vtable`机制,在运行时实现了动态绑定,使得程序可以根据对象的实际类型调用不同的虚函数,从而实现了多态性。理解虚函数的实现机制对于编写高质量、可扩展的C++代码至关重要。
首先,虚函数在C++中的声明使用`virtual`关键字。例如: ```cpp class Base { public: virtual void print() { cout ; } }; ``` 在这个例子中,`print()`被声明为虚函数,这意味着任何继承自`Base`的类都可以...
在C++编程语言中,虚函数(Virtual Function)是一个关键特性,它允许程序员实现多态性,这是面向对象编程中的核心概念。...虚函数是C++面向对象编程的重要组成部分,正确使用它们能够提高代码的可维护性和可复用性。
详细的介绍了C++虚函数的用法,从虚函数的实现机制上面为大家 一个清晰的剖析。当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大段大段的代码,没有图片,没有详细的说明,没有比较,...
### C++多态性与虚函数知识点解析 #### 一、多态性的概念 多态性是面向对象编程的一个核心特性,它允许我们通过基类的接口来操作派生类的对象。这种特性使得代码更加灵活且易于扩展。在C++中,多态性主要通过虚函数...