• 重载与缺省参数(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');
    替代以上重载,实现相同功能
     
    函数缺省参数一定要在函数声明时加上缺失值,函数定义时不需要在函数参数列表加上缺省值
    函数缺省参数一定是后部参数,就是不能一个是缺省参数后面的某些参数不是缺省参数,即一个缺省参数后面的所有参数都是缺省参数,
    缺省参数在编译器实现并不会增加内部函数,而是在编译时编译器为函数添加默认的参数值
  • 相关阅读:
    经典回溯问题- 迷宫
    关于二叉树的一点补充。
    二叉树重难点总结(判断完全二叉树,非递归前、中、后序遍历的实现等...)
    栈、队列常规操作
    贪吃蛇小游戏
    链表重点问题(下)
    链表常见问题(上)
    动态顺序表
    时间 空间复杂度小结(斐波那契 二分查找举例)
    每天一个linux命令-id,输出用户的uid、gid
  • 原文地址:https://www.cnblogs.com/cplover/p/3371910.html
Copyright © 2020-2023  润新知