`
bliuqing
  • 浏览: 66467 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

c++虚函数

    博客分类:
  • C++
 
阅读更多

class employee{
public:
employee(){
cout << "employee construction" << endl;
}
virtual ~employee(){
cout << "employee destruction" << endl;
}
virtual fuc1()
{
cout << "base fuc1" << endl;
}
virtual void fuc3() =0 ; //含有纯虚函数,employee不能被实例化,但是可以声明指向它的指针
};


class programmer: public employee{
public:
programmer(){
cout << "programmer construction" << endl;
}
~programmer(){
cout << "programmer destruction" << endl;
}
virtual fuc1() //这里,有没有virtual关键字都一样
{
cout << "extended fuc1" << endl;
}

virtual void fuc3()
{

}

};



int main(int argc, char* argv[])
{


  programmer pg1;
 pg1.fuc1();
 
employee *pe = new programmer( );
pe->fuc1();
delete pe;
return 0;


}

 

///

虚函数是派生类 "可以 "修改的成员函数。
纯虚函数是派生类 "必须 "修改的成员函数。

若派生类的父类有纯虚函数,而派生类没有实现这个纯虚函数,则报语法错误。

/////

虚函数的要求:
1,只有类的成员函数才能说明为虚函数,这是因为虚函数仅适用于有继承关系的类对象。
2,静态成员函数不能是虚函数,因为静态成员函数不受限于某个对象。
3,内联函数不能是虚函数,因为内联函数是不能在运行中动态确定其位置的。即使虚函数在类的内部
定义,编译时,仍将其看作非内联的。
4,构造函数不能是虚函数,因为构造时,对象还是一片未定型的空间。
5,析构函数可以是虚函数,而且通常声明为虚函数。

 

内联是在编译期决定的,而且直接展开为代码,而虚函数是在运行期决定的

 

 

 

分享到:
评论

相关推荐

    C++虚函数实现原理

    ### C++虚函数实现原理 #### 一、引言 在C++中,虚函数机制是面向对象编程中实现多态的重要方式之一。通过虚函数,可以在基类中定义一个接口,并由派生类来具体实现该接口的功能,进而允许在运行时根据对象的实际...

    c++虚函数与虚函数表

    ### C++虚函数与虚函数表的理解 #### 一、虚函数的概念 在C++中,虚函数(Virtual Function)是一种特殊类型的成员函数,它允许基类指针或引用指向派生类对象,并通过该基类指针或引用调用派生类中重写的同名函数。...

    C++ 虚函数表解析

    ### C++虚函数表解析深度剖析 在C++编程语言中,虚函数是实现多态性的关键机制之一,尤其在面向对象编程中扮演着至关重要的角色。本文将深入探讨C++虚函数表(Virtual Table,简称V-Table)的原理与实现细节,以...

    C++ 虚函数表详解

    C++虚函数表详解 C++中的虚函数表是实现多态机制的关键组件。虚函数表(Virtual Table,简称V-Table)是一种机制,用于存储类的虚函数的地址,解决继承和覆盖的问题,使得父类的指针可以正确地调用子类的成员函数。...

    C++虚函数调用机制初探

    ### C++虚函数调用机制初探 #### 引言 C++作为一种强大的面向对象编程语言,其核心特性之一便是支持多态性(polymorphism)。多态性允许程序员使用基类类型的指针或引用调用派生类的成员函数,这种能力极大地增强了...

    C++虚函数及虚函数表解析

    C++的虚函数和虚函数表是面向对象编程中实现多态性的重要机制。多态性允许通过基类指针或引用调用不同子类的重写方法,从而实现更灵活的设计和代码复用。 虚函数(Virtual Function)是基类中声明的一种特殊函数,...

    C++虚函数表解析

    详细的介绍了C++虚函数的用法,从虚函数的实现机制上面为大家 一个清晰的剖析。当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大段大段的代码,没有图片,没有详细的说明,没有比较,...

    C++虚函数的应用

    C++虚函数是面向对象编程中的一个重要特性,它允许我们实现多态性,即一个基类指针或引用可以调用派生类重写的成员函数。这种能力在编写可扩展和可复用的代码时非常关键。下面我们将深入探讨C++虚函数的应用及其实现...

    C++虚函数表实现聚合(COM)

    在C++编程语言中,虚函数表(Virtual Function Table,简称VFT或VTbl)是实现多态性的重要机制,特别是在面向对象编程中。多态性允许子类重写父类的方法,使得相同的消息可以有不同的行为。虚函数表是这种功能的底层...

    C++虚函数表测试源码

    本文将深入探讨C++虚函数表的相关知识点,并通过标题中提到的测试源码进行详细讲解。 首先,理解虚函数的定义:在C++中,当一个基类的指针或引用指向派生类的对象时,如果该基类有一个虚函数,那么通过指针或引用...

    C++虚函数和虚析构及标准C语言读取数值矩阵

    C++虚函数及其纯虚函数学习。 虚函数:子类可以实现具体函数,如果子类没有实现基类回自动补上。 纯虚函数:子类必须实现,不实现编译 不能通过。 虚析构:基类必须用虚析构函数这样子类析构(消失灭亡)时候才会...

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

    总结来说,C++的虚函数机制是通过虚函数表来实现多态性,使得我们能够在运行时根据对象的实际类型动态地调用合适的函数。理解这一机制对于深入学习C++的继承和多态性至关重要,同时也有助于掌握其他依赖于此机制的...

    详解C++虚函数的工作原理

    了解C++ 虚函数的工作原理 C++ 虚函数是 C++ 编程语言中一个重要的概念,它允许在编译期和运行期进行函数调用和绑定。虚函数的工作原理是通过虚函数表来实现的,该表记录了虚函数的地址,解决继承、覆盖的问题,...

    解析C++虚函数表 PDF

    ### 解析C++虚函数表 #### 虚函数与多态性 在C++编程语言中,虚函数(Virtual Function)是实现多态性的关键机制之一。多态性允许我们使用父类类型的指针或者引用去调用子类中重写的函数。简单来说,就是“一个...

Global site tag (gtag.js) - Google Analytics