zoukankan      html  css  js  c++  java
  • 21.重载与重写(Overloading and Overriding Are Different)

    Item 21. Overloading and Overriding Are Different

    Overloading : 重载
    Overriding  :重写

    1、Overloading 与 Overriding  是两个不同的概念
    Overloading 是指在同一个作用域中有两个或多个函数拥有相同的名字不同的签名。函数的签名包括:参数的数量和类型,const属性。当编译器发现存在一个以上的具有相同名字的函数,它就会调用其中一个匹配的函数。
    Overriding  是指子类有一个函数与父类中的某个虚函数的名字和签名都相同。当一个子类的对象调用该虚函数时,就会执行子类中Overriding 的那个函数。所以Overriding  改变的是类的行为而不是类的借口。

    2、eg
    class B {
      public:
        //...
        virtual int f( int );                                               
        void f( B * );                                                      
        //...
    };

    class D : public B {
      public:
        int f( int ); //Overriding B::f(int) (虚函数的问题)
        int f( B * ); //overload   D::f(int),而不是B::f(B *) (作用域的问题)
    };

  • 相关阅读:
    webpack打包报错configuration has an unknown property 'mode'
    CSP 201712-4 行车路线(最短路)
    设计模式
    sqlserver 迁移数据
    DataX
    Python 对接WebService
    IOS APP打包流程
    nginxUI
    ROS脚本-下线时判断在线数量进行重拨号
    bash 字符串截取的8种方法
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333238.html
Copyright © 2011-2022 走看看