zoukankan      html  css  js  c++  java
  • 重载与缺省参数(Thinking C++)

    重载与缺省参数
    C++全局函数与类成员函数在编译器编译时以类名+函数名确定内部函数名
    C++函数重载编译器一般以参数产生内部函数名
    C++不能以返回值作为重载的原因:很多情况下函数调用者调用函数并不需要返回值,如果存在一个void f(); int f(); 当调用f();时编译器不能确定究竟是调用哪个函数。
     
    C++安全连接
    //:def.cpp
    void f(int){}    //f(int)定义
     
    //:use.cpp
    void f(char);    //f(char)声明
    int main()
    {
        f(1);
        return 0;
    }
     
    以上代码在C中可以编译成功,但在C++中不行,由于use.cpp声明了f(char), 调用f(1)时连接器会去找例如_f_char这样 的内部函数,但只发现了
    _f_int函数,导致连接出错,这就是C++的安全连接
     
    缺省参数
    缺省参数可以实现类似于函数重载的功能,而且维护简单
    如有两个重载函数
    void f(int i,char c){}
    void f(int i){c = 'c' ;.....}
     
    可以使用缺省参数
    void f(int i,char c='c');
    替代以上重载,实现相同功能
     
    函数缺省参数一定要在函数声明时加上缺失值,函数定义时不需要在函数参数列表加上缺省值
    函数缺省参数一定是后部参数,就是不能一个是缺省参数后面的某些参数不是缺省参数,即一个缺省参数后面的所有参数都是缺省参数,
    缺省参数在编译器实现并不会增加内部函数,而是在编译时编译器为函数添加默认的参数值
  • 相关阅读:
    批量修改同一种控件属性
    线程池的使用
    金蝶K3常用数据表
    安装更新
    ApexSQL
    c# 计算一个整型数组的平均
    sqlServer基础知识
    c# 获取字符串数组中最长的的字符串并输出最长的字符串
    c# 获取数组中最大数的值
    c# 计算1-100之间的所有质数(素数)的和
  • 原文地址:https://www.cnblogs.com/cplover/p/3371910.html
Copyright © 2011-2022 走看看