第二讲 c++初步
来源:互联网 发布:姚明09年季后赛数据 编辑:程序博客网 时间:2024/05/20 14:24
函数重载
重载:一个标识符有多种含义的现象.
- 像"<<"是位左移运算符,又是输出算符
- 像"*"是指针运算符,又是乘法算符
如果标识符为运算符,就叫"运算符重载"
如果标识符为函数名,就叫"函数重载"用处
- 用于相类似而又不同的操作.求多个数值的最大数目,不同类型的参数,c语言需要编写不同的函数
c语言int max1(int a, int b, int c);float max2(float a, float b, float c);long max3(long a, long b, long c);
c++: 将这三个函数取相同的名字,程序运行时,系统会根据实际参数的不同,调用相近参数的函数(即:允许在统一作用域中用同一函数名定义多个函数,函数的参数类型和个数不同,这些同名函数实现不同功能--函数重载)
不能出现函数名,参数个数,类型完全一致的函数.
函数模板
- 函数模板:c++函数重载允许同一函数名定义多个函数,但是还要定义每一个函数,对于有些相同功能函数,如果函数参数个数相同,可以用函数模板.
- 函数模板是定义一个通用函数,其函数类型和形参类型不确定,用虚拟类型代表.利用函数模板定义的函数叫做模板函数.
template <typename T>//template <class 类型参数>//<类型> <函数名> (<参数表>)T max (T a, T b, T c){ if(a>b) return a; else return b;}
template
有默认参数的函数
背景:一般情况下,函数调用时,形参从实参取值,要求实参的个数和类型与形参相同,但是有时多次调用同一个函数时用的同一实参数,或者调用时还不好确定实参数.
c++: 若不提供实参数,形参就用默认参数作为实参值.
float area(float r=6.5)
area(); //同是area(6.5);注意
1. 当有多个参数时,如果只有部分参数有默认值,则指定默认值的参数必须放在参数表的最右边,否则出错.
2. 因为实参与形参的结合是从左至右边顺序进行的,第一个实参必须给第一个形参.
3. 一个函数不能即作为重载函数,又作为默认参数函数,因为当调用函数时候如果少写一实参,系统无法判断是利用重载函数还是利用默认参数函数.但是模板函数和默认参数函数可以.
变量的引用
- 引用:变量的引用就是变量的别名.建立引用的作用,就是为一个变量另取一个名字,以便在需要的时候简介地起到引用该变量.
- > int &b=a;
- 声明了一个整型变量的引用变量,并且被初始化为a.
- & 为"引用声明符号".对于一个变量声明一个引用,并不另开辟内存空间,代表同一个变量.
- 引用的不是独立变量,编译系统不给他分配存储单元,建立引用只有声明,没有定义,只是声明和某一个变量的关系.
- 声明一个变量的引用后,该引用不能再次声明
- > int &x; //错误,没有指定是哪个变量
- 主要用来作为函数参数,以弥补函数传递参数的不方便.
阅读全文
0 0
- 第二讲 c++初步
- C语言第二讲
- 第二讲:c/c++数据类型
- 第二讲:Obj-C 点语法
- 【C大事】第二讲:对话框程序
- C语言入门第二讲(Branch分支)
- C语言学习之关键字第二讲
- 《C语言及程序设计初步》第四讲实践项目
- 《C语言及程序设计初步》第七讲实践项目
- 《C语言及程序设计初步》第十四讲实践项目
- 《C语言及程序设计初步》第26讲实践项目
- 《C语言及程序设计初步》第33讲实践项目
- 《C语言及程序设计初步》第33讲阅读程序
- 《C语言及程序设计初步》第34讲实践项目
- 《C语言及程序设计初步》第35讲实践项目
- 《C语言及程序设计初步》第36讲实践项目
- 《C语言及程序设计初步》第37讲实践项目
- 《C语言及程序设计初步》第38讲实践项目
- 洛谷 [P1282] 多米诺骨牌
- js正则表达式判断电话号码是哪个运营商
- 从C调用Python脚本unableto load the file system codec ImportError错误解决方法
- kotlin学习笔记(三)
- PHP基础语法
- 第二讲 c++初步
- jquery 插入文本时不能插入转义字符
- Android扫一扫(Zxing),闪光灯,生成二维码图片,解析二维码(条码)等
- 【Oracle】授权导入和导出( IMP_FULL_ DATABASE ORA-00990 )
- .gitignore文件使用的误区
- golang make & new
- Android 基类BaseActivity的封装
- DataBinding原理解析
- 利用eclipse中的gradle tasks打包项目