zoukankan      html  css  js  c++  java
  • 第7章 函数重载与默认参数

      名字修饰

      假设重载了两个函数名:

        print(float);
        print(char);

      无论这两个函数是某个类的成员函数,还是全局函数都无关紧要。如果编译器只使用函数名的域,编译器并不能产生惟一的内部标识符,这两种情况下都得用_print结尾。重载函数的思想是让我们用同名的函数,但这些函数的参数列表应该不一样。所以,为了让重载函数正确工作,编译器要用不同的参数类型来修饰不同的函数名,以供它和连接器使用。上面的两个在全局范围定义的函数,可能会产生类似于_print_float_print_char的内部名。但不同的编译器可能会产生不同的内部名。

      C++中禁止仅仅靠返回值来重载函数。在C中,总是可以调用一个函数但忽略它的返回值,即调用了函数的副作用,在这种情况下,编译器如何知道调用哪个函数呢?

     

      默认参数

      在使用默认参数时必须记住两条规则。第一,只有参数列表的后部参数才是可默认的,也就是说,不可以在一个默认参数后面又跟一个非默认的参数。第二,一旦在一个函数调用中开始使用默认参数,那么这个参数后面的所有参数都必须是默认的。

     

      我们使用两个完全不相干的函数维护两个函数的代码,而不是使用默认参数把它们组合成一个函数。这样,维护起来就跟容易,尤其是当函数特别大时。

  • 相关阅读:
    记住我
    国米夺冠
    小谈“汉字转换成拼音(不带声调)”
    NLP资源共享盛宴
    文本分类资源和程序开源共享
    菜鸟进阶:C++实现Chisquare 特征词选择算法
    欢迎大家试用信息领域学科知识服务平台
    欢迎大家加入NLP,WEBIR,DATA Ming 的技术QQ群
    求两点之间所有路径的算法
    step by step 文本分类(一)
  • 原文地址:https://www.cnblogs.com/sheshiji/p/3427697.html
Copyright © 2011-2022 走看看