C++学习 函数的重载
来源:互联网 发布:线切割电脑主板编程 编辑:程序博客网 时间:2024/06/09 19:20
参考书籍《从新手到高手C++全方位学习》
=============普通函数重载==============#include<iostream>using namespace std;void fun(int);void fun(float);void fun(long);void fun(double);int main(){ int a=1; long b= 100000; float c=1.5; double d=6.4579; cout<<"a:"<<a<<endl; cout<<"b:"<<b<<endl; cout<<"c:"<<c<<endl; cout<<"d:"<<d<<endl; fun(a); 根据参数的不同,选择不同的函数 fun(b); fun(c); fun(d); return 0;}void fun(int a){ cout<<"a的平方为:"<<a*a<<endl;}void fun(long b){ cout<<"b的平方为:"<<b*b<<endl;}void fun(float c){ cout<<"c的平方为:"<<c*c<<endl;}void fun(double d){ cout<<"d的平方为:"<<d*d<<endl;}结果:
=============成员函数重载==============函数的重载:1不同的方法都具有相同的函数名 2重载的方法属于同一个类3重载的方法的函数参数不同(参数个数或者参数类型)#include<iostream>using namespace std;class Cube{public: void sum(); void sum(int x, int y);private: int i; int j;};int main(){ Cube a; a.sum(2,3); //这两个函数的调用 一定要有顺序 a.sum(); //因为前者为私有成员赋值了,后者才能调用 return 0;}void Cube::sum(){ cout<<"i的立方:"<<i*i*i<<endl; cout<<"j的立方:"<<j*j*j<<endl;}void Cube::sum(int x , int y){ i=x; j=y; cout<<"i="<<i<<endl; cout<<"j="<<j<<endl;}结果:
=============函数的缺省参数(默认参数)==============【普通函数的默认参数】#include<iostream>using namespace std;void func(int =3, int=9); //函数的声明 可以省略参数名称int main(void){ func(); func(10,100); return 0;}void func(int x, int y){ cout<<"x="<<x<<"\t"<<"y="<<y<<endl;}【成员函数的默认参数】#include<iostream>using namespace std;class A{public: void set(int =8, int=5);//函数的声明,可以省略参数名称 void show(){cout<<"i*j="<<i<<'*'<<j<<"="<<i*j<<endl;} //*和=既可以用单引号也可以双引号private: int i; int j;};int main(void){ A a; a.set(); //无参数 调用默认的8,5 a.show(); a.set(2,9); //有参数 调用重新赋的值2,9 a.show();}void A::set(int x,int y)//函数的定义,都不能省略{ i=x; j=y;}默认参数的函数,重载的是参数的数值重载函数重载的是参数的类型结果:
【普通函数的默认参数】
【成员函数的默认参数】
=============构造函数的重载==============#include<iostream>using namespace std;class rectangle{public : rectangle(){cout<<"构造一个长方形\n";} rectangle(int x , int y) {length=x;width=y;cout<<"长方形的面积:"<<length*width<<endl;} rectangle(int x , int y,int z) {length=x;width=y;height=z;cout<<"长方形的体积:"<<length*width*height<<endl;}private: int length; int width; int height;};int main(void){ rectangle a; //不要老把重载成相互取代,而是相互之间可以协作 rectangle b(2,5); rectangle c(2,5,4); //构造函数每次都是初始化所需参数,不可能使用其它构造函数初始化的值 return 0;}结果:
- 【C++】【学习笔记】【006】函数的重载
- 【C++】函数的重载
- 【c++】函数的重载
- [C++]C++的函数重载
- 【c#】函数重载的条件
- c函数重载的实现
- C++primer学习笔记-----6.4函数重载
- C++学习 函数的重载
- 函数与重载的学习
- (C/C++学习笔记)函数模板遇上函数重载
- 深入剖析C 重载函数的应用
- linux c/c++ 函数的重载
- C++_函数的重载使用举例
- 如何实现 C 的函数重载
- C语言是实现函数的重载
- C函数的模拟重载实现说明
- 【C++】成员函数的重载,覆盖,隐藏
- c,c++函数重载的区别
- JQuery函数积累
- 【LeetCode】Search a 2D Matrix (杨氏矩阵查找)
- 如何判断电动车控制器的优劣?
- 2014各大网络公司笔试题汇总
- MFC框架中消失的WinMain()
- C++学习 函数的重载
- 颜色中英文对照表颜色名字色彩名称
- java基础<IO输出与输入>--->IO流<字符流>
- 误删/tmp导致hadoop无法启停, jps无法查看的解决方法
- 几种页面置换算法
- hdoj 2087 剪花布条 (简单的KMP匹配)
- 浅析Python中的struct模块(python网络编程)
- xdebug,在浏览器中显示日志信息
- Dialog 异常