zoukankan      html  css  js  c++  java
  • C++ 虚函数与多态

    转自:http://blog.csdn.net/chencheng126/article/details/42468345

    多态的作用:继承是子类使用父类的方法,而多态则是父类使用子类的方法

    在C++中,多态有两种,一种是函数重载,一种是虚函数。函数重载发生在编译的时候,它的函数参数是不一样的。而虚函数是发生在运行的时候,它的函数原型是一样的,依靠的是指针的指向。

    有一篇非常好的文章介绍多态与虚函数。发一个链接在这里。

    http://blog.csdn.NET/augusdi/article/details/38271009

    这么一大堆名词,实际上就围绕一件事展开,就是多态,其他三个名词都是为实现C++的多态机制而提出的一些规则,下面分两部分介绍,第一部分介绍【多态】,第二部分介绍【虚函数,纯虚函数,抽象类】

    一 【多态】

    多态的概念 :关于多态,好几种说法,好的坏的都有,分别说一下:

    1指同一个函数的多种形态。

           个人认为这是一种高手中的高手喜欢的说法,对于一般开发人员是一种差的不能再差的概念,简直是对人的误导,然人很容易就靠到函数重载上了。

     

           以下是个人认为解释的比较好的两种说法,意思大体相同:

    2多态是具有表现多种形态的能力的特征,在OO中是指,语言具有根据对象的类型以不同方式处理之,特别是重载方法和继承类这种形式的能力。

           这种说法有点绕,仔细想想,这才是C++要告诉我们的。

     

    3多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object PascalC++中都是通过虚函数(Virtual Function实现的。

           这种说法看来是又易懂,又全面的一种,尤其是最后一句,直接点出了虚函数与多态性的关系,如果你还是不太懂,没关系,再把3读两遍,有个印象,往后看吧。

     

    【虚函数,纯虚函数,抽象类】

           多态才说了个概念,有什么用还没说就进入第二部分了?看看概念3的最后一句,虚函数就是为多态而生的,多态的作用的介绍和虚函数简直关系太大了,就放一起说吧。

     

    多态的作用:继承是子类使用父类的方法,而多态则是父类使用子类的方法。这是一句大白话,多态从用法上就是要用父类(确切的说是父类的对象名)去调用子类的方法,例如:

    要注意的几个问题是,派生类的构造问题肯定是要调用到基类的构造函数。还有如果是声明纯虚函数的话应该是 virtual function()=0

    注意如果是要c++保留2位小数点后小数的话 cout<<fixed<<setprecision(2)<<变量; 一定不能忘记fixed 忘记fixed 就是保留2个数了。

  • 相关阅读:
    AtCoder Grand Contest 029C
    AtCoder Grand Contest 034D
    JZOJ 4418. 【HNOI2016模拟4.1】Prime的把妹计划(单调栈+线段树)
    COCI 2015/2016 PROKLETNIK(单调栈+线段树)
    常用数论定理(费马小定理&欧拉定理&扩展欧拉定理)
    JZOJ 3252. 【GDOI三校联考】炸弹(树形DP)
    prufer序列入门
    NOI2020全国统一省选-GDOI游记(爆炸记)
    Manacher算法操作详解
    JZOJ 6493. 【GDOI2020模拟03.04】迷宫(状压DP)
  • 原文地址:https://www.cnblogs.com/zzzPark/p/6899305.html
Copyright © 2011-2022 走看看