C++编程思想学习—函数重载与默认函数

原创 2012年03月29日 16:21:35

1、函数重载

       C++中可以用相同的函数名但是参数列表不同来区分函数。编译器连接时会修饰这些名字、类型、范围来产生内部的名字供连接器使用。但是由于返回值对于函数的调用不是必须的,有些函数调用只是利用了函数调用的副作用。而不要求其返回值。所以,C++中静止用返回值的不同来产生函数的重载。

2、联合

       联合同class除了数据存储的方式不同,union为内存区覆盖式存放,别的都一样,union也可有构造、析构函数,也可以由成员函数、访问控制符。但是union也有一个缺点即初始化后,使用成员函数去操作成员变量时,可能错误的选择了目前错误的成员变量。如:某一时刻初始化为存放一个int型的数据,但这时候缺错误的用成员函数去访问float型数据。

3、默认参数

       默认参数就是在函数声明时给定某些参数一定的默认值。这样在编译时如果编译器发现对于这个函数的调用未给出此位置参数的值,则编译器将默认值赋予此位置的参数。但是使用时注意:默认参数必须放在参数列表的最后。不能在默认参数后面的位置出现非默认参数。

       默认值的使用简化了调用函数时的繁杂的输入一些一般情况下不变的参数。同时使得:在程序设计的初期定义了一组参数,而在后来发现需要增加一些参数时,可以把这些新增的参数都作为默认的参数。这样就可以不用改变客户程序的代码。

       默认参数使用的另一原则是,不要把默认参数当做函数代码分支选择的标志,如果出现这种情况则为了是代码易维护和阅读,应该讲这一个函数分成两个或者多个重载函数。

      本文纯为个人学习C++编程思想时个人心得体会,所以,难免有不严谨之处,甚至有可能是错误的理解。如发现错误,或者疑问。欢迎提出讨论,共同学习、进步
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++编程思想--函数重载和默认参数

第7章 函数重载与默认参数 一、何谓函数重载 函数重载中,可以通过调用同一个函数名字达到不同的功能,但是传入的值类型或许不同。于是在C++中设置其为函数重载。 1、那么编译器是如何区分不同的参数类型的...

《C++编程思想》第五章 函数重载与缺省参数 (原书代码+习题+解答)

一.相关知识点         在使用缺省参数时必须记住两条规则。第一,只有参数列表的后部参数才可是缺省的,也就是说,我们不可以在一个缺省参数后面又跟一个非缺省的参数。第二,一旦我们开始使用缺省参数,...

C++编程思想学习——内联函数

1、预处理器的缺陷        预处理器的宏虽然降低了函数调用的额外开销,使用宏也表面上好像是使用函数一样。但是,使用宏时可能在预处理器的展开后,表达式的优先级,以及表达式展开后的多次求值可能使...

C++编程思想学习笔记---第15章 多态性和虚函数

多态性(polymorphis)提供了接口与具体实现之间的另一层隔离,从而将”what”与”how”分离开来。多态性改善了代码的组织性和可读性,同时也使创建的程序具有可扩展性。 15.1 C++程序员...

C++编程思想学习笔记----第11章 引用和拷贝构造函数

11.1 C++中的指针 c和c++指针的最重要区别在于c++是一种类型要求更强的语言。在c中,void* 类型的指针可以随意地指向其他类型的指针,而c++中必须显示地使用类型转换通知编译器和读者,这...

C++编程思想学习——引用和拷贝构造函数

1、  C++中引用的3大特性 a)         创建时必须要被初始化 b)        一旦创建后指向一个对象即不能指向别的对象...

C++编程思想学习笔记---第12章 运算符重载

C++编程思想学习笔记—第12章 运算符重载 运算符重载只是一种语法上的方便,只是另一种形式的函数调用。 应当说明,运算符重载不应该被滥用,只有在能使涉及类的代码更易写,特别是更易读时,才有...

《C++编程思想》 第十四章 多态和虚函数 (原书代码+习题+讲解)

一.相关知识点 函数调用捆绑        把函数体与函数调用相联系称为捆绑(binding)。当捆绑在程序运行之前(由编译器和连接器)完成时,称为早捆绑。我们可能没有听到过这个术语,因为在过程语言中...

C++编程思想3-利用C++进行文件操作封装C函数

我们知道在C语言中许多文件操作的函数 很零散,在使用的时候不得不四处查找 ,我们是否能向C++中 的   CFile类等一样封装我们自己的文件操作呢?当然可以,我们这里我封装的是 C语言的文件操作函数...

引用和拷贝构造函数 --C++编程思想

1. C和C++指针最重要的区别        C++类型要求更强,void* 不可以赋值给其他指针,可以通过强制类型转换完成;C则可以。 2. 使用引用的规则        任何引用都要和存储...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)