zoukankan      html  css  js  c++  java
  • C++函数的高级特性——小结

    相对于C语言,C++增加了重载(overload)、内联(inline)、const和virtual四种新机制。

    1 重载

    只能靠参数列表而不能紧靠返回值类型的不同来区分重载函数。编译器根据参数列表为每个参数产生不同的内部标识符。由于编译后的名字不同,C++程序不能直接调用编译后的C函数。C++提供了一个C交换指示符extern “C”来解决这个问题,例如:

    #ifdef __cplusplus
    extern "C" {
    #endif
    #include "myheader.h"
    ...//其他C头文件
    #ifdef __cplusplus
    }
    #endif

    2 重载、覆盖与隐藏的区别

    成员函数被重载的特征是:

    • 具有相同的作用域(即在同一个类定义中)
    • 函数名字相同
    • 参数类型、顺序或数目不同(包括const和非const参数)
    • virtual关键字可有可无

    覆盖是派生类改写了基类的成员函数,其特征是

    • 不同的作用域(分别在基类和派生类中)
    • 函数名字相同
    • 参数列表完全相同
    • 基类函数必须是虚函数

    隐藏是指派生类的成员函数遮蔽了与之同名的基类成员函数,具体规则如下:

    • 派生类的函数与基类的函数同名,但是参数列表有所差异,此时,无论有没有virtual关键字,基类的函数在派生类中会被隐藏(区别于重载)
    • 派生类的函数与基类的函数同名,参数列表也相同,但是基类函数没有virtual关键字,此时,基类的函数在派生类中会被隐藏(区别于覆盖)
    • 覆盖是一种特殊的隐藏

    3 参数的默认值

    参数默认值放在函数的声明中,不能放在定义体中。

    4 运算符的重载

  • 相关阅读:
    php命令注入
    mysql事物
    安装php环境
    移除服务器缓存实例
    show user profile synchronization tools
    manual start user profile import
    JSON is undefined. Infopath Form People Picker in SharePoint 2013
    asp.net web 应用站点支持域账户登录
    Load sharepoint envirement by powershell
    sharepoint 2016 download
  • 原文地址:https://www.cnblogs.com/alwayswangzi/p/6505053.html
Copyright © 2011-2022 走看看