C++学习笔记十二之函数重载
来源:互联网 发布:女包包网淘宝网 编辑:程序博客网 时间:2024/05/20 07:53
函数重载使用不同的参数列表来完成相同的工作(说白了就是重复使用同一个函数名)。
函数重载:可以有多个同名函数,对函数名进行了重载,使用不同的参数列表。
函数特征标:函数的参数列表
函数重载的关键是要参数列表必须不一样,函数类型可以相同也可以不同。
举个例子:
int love(int a, int b);
int love(int c, int d);
int love(int c, int d);
这两个函数的特征标(参数列表)是相同的,因为函数的参数数目和类型相同,并且排列顺序也相同,所以这就不是函数重载。
再举个例子:
int love(int a);
int love(int a, int b);
int love(char c);
double love(int d);
int love(int a, int b);
int love(char c);
double love(int d);
这个例子中所有的函数要么是参数数目不同,要不就是参数类型不同,这才是函数重载。
这里有书上的一段代码,给一个字符串和数字,依次输出前几个字符和数字。
【源码示例】
#include <iostream>#include <stdlib.h>unsigned long left(unsigned long num,unsigned ct);char * left(const char *str,int n=1);int main(){using namespace std;char *trip = "Hawaii!!";unsigned long n = 12345678;int i;char *temp;for (i=1;i<10;i++){cout << left(n,i)<<endl;temp = left(trip,i);cout << temp << endl;delete[] temp;}system("pause");return 0;}unsigned long left(unsigned long num, unsigned ct){unsigned digits = 1;unsigned long n = num;if (ct == 0 || num == 0)return 0;//判断数字的位数while (n/=10){digits++;}if (digits>ct){ct = digits-ct;while (ct--){num /= 10;}//返回前几位数字return num;}else{return num;}}char * left(const char *str, int n ){if (n < 0)n = 0;char *p = new char[n+1];int i;for (i=0;i<n&&str[i];i++){p[i] = str[i];}while (i<=n){p[i++] = '\0';}return p;}【演示结果】
阅读全文
0 0
- C++学习笔记十二之函数重载
- C++学习笔记(十二):重载函数
- C学习笔记(十二)函数详解
- 【C++】【学习笔记】【006】函数的重载
- C++primer学习笔记-----6.4函数重载
- PHP学习笔记之:函数重载
- C++学习笔记之函数重载简介
- C++ Template学习笔记之函数模板(7)——重载函数模板
- C++ Template学习笔记之函数模板(7)——重载函数模板
- 我的小小学习笔记(6)之C++-----函数的重载
- (C/C++学习笔记)函数模板遇上函数重载
- 《C++ primer》学习笔记之二十二: 函数指针
- mysql学习笔记之十二(存储过程和函数)
- Object-C 学习笔记(十二)---Foundation之NSNumer
- c 语言学习笔记十二
- C++学习笔记之 函数重载和函数指针在一起
- C学习笔记之函数
- 【C++】学习笔记四十二——函数重载
- SetupDi 获取设备信息的两个方法
- 图片加载错位
- c++ 笔记
- 快速排序
- 设计模式番外篇
- C++学习笔记十二之函数重载
- CodeForces
- (sqlalchemy.exc.InvalidRequestError) Can't reconnect until invalid transaction is rolled back
- 荷兰国旗
- Volatile和Synchronized对可见性和原子性的支持
- linux学习总结 unit06进程管理
- 原型模式
- java自定义Exception
- Android零基础入门第14节:使用高速Genymotion,跨入火箭时代