C++笔记函数重载函数模板
来源:互联网 发布:2017淘宝卖什么利润大 编辑:程序博客网 时间:2024/04/29 22:02
#include <iostream>using namespace std;class Student{private: int num; int score;public: void setdata() //定义公用的函数setdate { cin>>num; cin>>score; } void display() //定义公用函数display { cout <<"num="<<num<<endl; cout <<"score="<<score<<endl; }};Student stu1,stu2;int main(){ stu1.setdata(); stu1.display(); stu2.setdata(); stu2.display(); return 0;} //在函数的后面加上不加;结果都是一样的一句话的结束符号;不影响函数的执行
在C++中也允许函数的重载,即函数的一物多。
#include <iostream>//#include <iomanip>using namespace std;int max(int a, int b,int c){ if(b>a)a=b; if(c>a)a=c; return a;}float max(float a, float b,float c){ if(b>a)a=b; if(c>a)a=c; return a;}long max(long a, long b,long c){ if(b>a)a=b; if(c>a)a=c; return a;}int main(){ int a,b,c; float d,e,f; long g,h,i; cin>>a>>b>>c; cin>>d>>e>>f; cin>>g>>h>>i; int m; m=max(a,b,c); cout<<"max_i="<<m<<endl; float n; n=max(d,e,f); cout<<"max_f="<<n<<endl; long int p; p=max(g,h,i); cout<<"max_l="<<p<<endl; return 0;} //在函数的后面加上不加;结果都是一样的一句话的结束符号;不影响函数的执行
main函数三次调用函数max()函数,每次实参的类型不同。系统会根据实参的类型找到与之匹配的函数,然后调用该函数。当然当参数的个数不同的时候定义是的函数也能够进行重载。
C++也提供了函数模板,所谓函数模板就是建立一个通用函数,其函数的类型和形参不进行具体的指定,使用一个虚拟的类型来代表。这个通用的函数就是函数模板。
#include <iostream>//#include <iomanip>using namespace std;//通用函数定义template<typename T>T max1(T a,T b,T c){ if(b>a)a=b; if(c>a)a=c; return a;}int main(){ cout<<max1(5,4,6)<<endl; cout<<n_add(5,3,5)<<endl; cout<<n_add(5.35,5.5,6)<<endl; return 0; return 0;} //在函数的后面加上不加;结果都是一样的一句话的结束符号;不影响函数的执行
变量的引用,在C++中使用符号&在变量之前代表对变量的引用,只要变量一被引用那么变量和被引用变量就代表同一个变量。
#include <iostream>using namespace std;int main() { int a=0; int &b=a; b=9; cout<<a<<endl; cout<<b<<endl; cout << "Hello, World!" << endl; return 0;}
在进行变量的引用之后,改变变量b的值变量a的值也会发生改变,即变量a和b代表同一个变量。
并且对变量声明一个引用,并不另开辟内存单元,b和a都代表同一个变量单元。在声明一个引用的时候,必须对其进行初始化,即声明代表哪一个变量。
引用和被引用的变量具有相同的地址
#include <iostream>using namespace std;int main() { int a=0; int &b=a; b=9; cout<<a<<endl; cout<<b<<endl; cout<<&a<<endl; cout<<&b<<endl; cout << "Hello, World!" << endl; return 0;}/home/andrew/文档/Clion/untitled2/cmake-build-debug/untitled2990x7ffdfcae94740x7ffdfcae9474Hello, World!Process finished with exit code 0
0 0
- (C/C++学习笔记)函数模板遇上函数重载
- C++笔记函数重载函数模板
- C++ Template学习笔记之函数模板(7)——重载函数模板
- C++ Template学习笔记之函数模板(7)——重载函数模板
- 函数模板 /函数重载
- 函数重载 函数模板
- 编写一函数add()函数重载,函数模板(C++)
- C++ Templates笔记 2 重载函数模板
- C++函数模板重载学习笔记
- 模板函数重载
- 函数模板重载
- 模板,函数重载忽略
- 函数重载和模板
- 函数重载与模板
- 模板函数的重载
- C++ 重载函数模板
- 函数模板及其重载
- 模板函数 重载/特化
- Java IO (3)--ByteArrayInputStream
- 2017.02.28 C/C++小知识点
- Android studio将jar包置于sdk中的android.jar之前(跳坑记)
- 设计模式之单例模式
- WebApi中跨域解决办法(转)
- C++笔记函数重载函数模板
- 并查集(寻找关系使用)
- zynq-mpsoc系列之zcu102的linux完整启动log信息
- Android 源码分析VR返回键无法用Accessibility拦截的问题
- c语言一行一行的读取txt文件
- Canvas 基本用法
- 快速获取想要的基因序列(批量)+后续blast
- 【录教程必备】推荐几款屏幕录制工具(可录制GIF)
- Longest Substring Without Repeating Characters