`
aigo
  • 浏览: 2675635 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

C++不用虚函数实现多态

 
阅读更多

原文:http://emowuyi.iteye.com/blog/1324159

 

#include "stdafx.h"

typedef void (*fVoid)();

class A
{
public:
        static void test()
        {
                printf("hello A\n");
        }

        fVoid print;

        A()
        {
                print = A::test;
        }
};

class B : public A
{
public:
        static void test()
        {
                printf("hello B\n");
        }

        B()
        {
                print = B::test;
        }
};


int main()
{
        A aa;
        aa.print();

        B b;
        A* a = &b;
        a->print();

        getchar();

        return 0;
}

 

这样做的好处主要是绕过了vtable。我们都知道虚函数表有时候会带来一些性能损失。

分享到:
评论

相关推荐

    虚函数实现多态

    这是C++编写的体现多态的程序,是在C++类里通过继承和派生来实现的,比较简单

    C++中的虚函数与多态

    总的来说,虚函数和多态是C++中实现面向对象设计的关键特性,它们提供了一种灵活的方式来处理不同类型的对象,增强了代码的复用性和可扩展性。理解和熟练使用这些概念对于编写高效、可维护的C++代码至关重要。

    C++虚函数和多态学习笔记

    ### C++虚函数和多态学习笔记 #### 一、虚函数与多态的基本概念 在C++中,虚函数是实现多态的一种机制。多态是指同一个接口(方法名)可以有不同的行为表现,即“一种接口,多种方法”。通过虚函数,我们可以实现...

    c++继承与多态,虚函数实例

    虚函数在实现多态中扮演着关键角色,它可以确保程序在运行时能够调用到正确的方法,即便对象的实际类型与指针或引用声明的类型不同。 首先,让我们深入理解“虚函数”这一概念。在C++中,虚函数通过在基类中使用`...

    C++ 虚函数与多态 教学PPT

    C++通过虚函数表(Vtable,Virtual Table)来实现运行时多态。每个含有虚函数的类都有一个虚函数表,其中包含了该类及其所有基类的虚函数地址。当使用基类指针调用虚函数时,会通过虚函数表找到实际对象所属类的相应...

    虚函数、多态、动态联编

    在C++编程语言中,虚函数、多态和动态联编是面向对象编程的重要特性,它们使得程序设计更加灵活,能够实现抽象和代码复用。虚函数是实现多态的关键机制,它允许我们通过父类指针或引用调用子类重写的方法,从而达到...

    C++ 多态 虚函数 虚函数表 最是详细

    高质量的C++多态讲解,详细讲解虚函数,虚函数表,虚函数继承,虚函数继承下的内存分配等

    深入解析C++中的虚函数与多态

    1.C++中的虚函数C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是...

    C++多态虚函数表

    - 在C++中,多态是通过虚函数和虚函数表实现的。 - 每个包含至少一个虚函数的类都会有一个虚函数表。 - 类实例的虚函数表指针指向其所属类的虚函数表。 - 在多重继承的情况下,子类的虚函数表基于父类的虚函数表,...

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

    虚函数是C++中实现多态的基础。当在一个基类中声明一个虚函数时,这个函数可以在派生类中被重写,从而允许通过基类指针或引用调用派生类的版本。这样,即使不知道对象的确切类型,也可以执行适当的成员函数。例如: ...

    实验三虚函数与多态纯虚函数完整版.pdf

    在本文档中,主要讲述了面向对象编程中的两个重要概念:虚函数和多态。同时,纯虚函数作为多态...通过阅读和分析这份文档,读者应该能够加深对C++中虚函数、纯虚函数和多态的理解,并在自己的项目中灵活运用这些知识。

    虚函数和多态.docx

    虚函数和多态是面向对象编程中的核心概念,它们在C++和其他支持这些特性的语言中扮演着重要的角色。虚函数允许子类重写基类的行为,从而实现更灵活的代码设计。多态则允许我们编写更加通用的代码,不必关心具体对象...

    C++作业题:基于模板的链表、虚函数、多态

    异质链表: 是指可以链表指针所指向的数据类型并不一致,比如一个链表中可以既存储整形数据,又可以存储浮点性的数据。在面向对象的语言中甚至就是可以指向不同的对象。...C++多态:通过虚函数表实现多态。

    用C++实现虚函数

    总结一下,C++的虚函数机制是实现多态的关键,它允许我们通过基类接口调用派生类的实现。虚析构函数确保了正确释放派生类的资源。同时,虚函数引入的vptr会导致类的大小增加,但这是实现动态绑定所必需的。理解这些...

    虚函数与多态,通过案例来阐述多态的概念和虚函数的使用

    虚函数(Virtual Function)是实现多态的关键机制。 虚函数是在基类中声明的函数,它允许子类重写该功能,以便在运行时根据对象的实际类型调用相应的实现。在上述代码示例中,`CEmployee` 类是所有员工类型的基类,...

    详细讲述c++虚函数实现

    多态是C++泛型编程的一种体现,它允许我们使用统一的接口处理不同类型的对象,如模板、RTTI(Run-Time Type Information)和虚函数都是实现多态的方式。 虚函数的实现依赖于虚函数表(Virtual Table,简称V-Table)...

    C++面向对象技术之虚函数与多态

    而动态多态则是通过虚函数实现的,它允许在程序运行时根据对象的实际类型来调用相应的函数,这种机制被称为动态联编。 虚函数是在基类中声明为`virtual`的函数,可以被派生类重写。在派生类中,即使没有再次声明`...

Global site tag (gtag.js) - Google Analytics