上次缺省的补充以及重载

本文介绍了C++中头文件如何声明函数,以及源文件如何定义函数。缺省参数可以在声明中使用,但不能在定义中使用。同时,文章探讨了函数重载的概念,强调了重载不考虑返回值,只看函数名和参数列表。此外,还展示了引用的使用,强调引用一旦绑定不能改变引用对象。
摘要由CSDN通过智能技术生成

如果有个头文件声明了一个函数(只写了有这个函数,没有具体去写出函数的具体内容),然后让另一个源文件去补充说明它的内容

//比如先自己写个头文件test.h
int add(int a,int b)
//源文件a.cpp
int add(int a,int b){
  return a+b;
}
//源文件b.cpp
#include<iostream>
using namespace std;
int main(){
  cout<<add(1,2);
  return 0;
}

那么运行结果是1+2=3。那如果有缺省呢?

//比如先自己写个头文件test.h
int add(int a=10,int b=20)
//源文件a.cpp
int add(int a,int b){
  return a+b;
}
//源文件b.cpp
#include<iostream>
using namespace std;
int main(){
  cout<<add();//10+20=30
  cout<<add(1,2);//1+2=3
  return 0;
}

再看一下下面这个情况

//比如先自己写个头文件test.h
int add(int a,int b)
//源文件a.cpp
int add(int a=10,int b=20){
  return a+b;
}
//源文件b.cpp
#include<iostream>
using namespace std;
int main(){
  cout<<add();//报错
  cout<<add(1,2);//1+2=3
  return 0;
}

因此,缺省可以用在声明(类似头文件)中,但是不能用在定义(其他源文件)中!

下面讲重载

重载函数:函数名必须相同,参数必须有不同(类型,个数,顺序),返回值可以相同,下面举例子

double compare(int,doube)//主函数

int compare(double,double)//构成重载

double compare(double,double)//构成重载

double compare(int,double,int)//构成重载

double compare(double,int)//构成重载

int compare(int,int)//不构成重载,因此构不构成重载是不看返回值的,只看函数名是否相同和后面的参数是否相同

下面讲引用

#include<iostream>
using namespace std;
int main(){
	int a=0;
	int&b=a;
	int&c=b;
	cout<<a<<endl;
	b++;
	cout<<a<<endl;
	c++;
	cout<<a<<endl;
	return 0;
}//输出0,1,2

注意给一个变量引用之后不能改变引用对象,不然会报错,如下

#include<iostream>
using namespace std;
int main(){
	int a=0;
	int&b=a;
	int x=10;
	int&b=x;//报错
	cout<<b<<end;
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值