C++ 函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++ 函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2622字,纯文字阅读大概需要4分钟。
内容图文
一、函数的作用
函数的出现,让程序的可读性大大增强,同时函数可以被反复调用,这使程序员在编写大型程序的时候更加方便。
二、获得函数的两种方法
1.标准库里的函数
在C++的标准库中,有很多已经“造好的”函数,我们只要#include相应的头文件,就可以在主函数中调用头文件中包含的函数,比如解决数学问题时常用的#include
我们在包含了头文件
2.定义一个属于自己的函数
如果C++标准库中没有自己需要的函数,我们就可以“自定义函数”:
函数的声明:让计算机知道,我们自定义了一个函数,这就是函数的声明(Declare)。
这里需要注意:函数的定义和函数的声明是有一定不同的,函数的声明在最后是有分号的。
函数的声明:
Bool Prime(int x);
函数的定义:
Bool Prime(int x)
{
? for(int i=2;i<=x/2;i++){
? if(x/i==0)
? return false;
}
return true;
}
声明表示该函数存在,而定义表示该函数怎么去运行,在调用函数之前,必须先声明函数
三、函数的三种调用
调用类型 | 描述 |
---|---|
传值调 用 | 该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。 |
指针调用 | 该方法把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 |
引用调用 | 该方法把参数的引用复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 |
四、函数重载
函数重载的本质就是多个函数共用一个函数名
例如:
#include < iostream >
using namespace std;
int myabs(int a); //自定义求绝对值函数
float myabs(float a);
double myabs(double a);
int main()
{
? int a=-1,b=2;
? float c=-2.2f,d=3.9f;
? double e=-3e-9,f=3e6;
? cout<<"a="<<myabs(a)<<endl;
? cout<<"b="<<myabs(b)<<endl;
? cout<<"c="<<myabs(c)<<endl;
? cout<<"d="<<myabs(d)<<endl;
? cout<<"e="<<myabs(e)<<endl;
? cout<<"f="<<myabs(f)<<endl;
? return 0;
}
int myabs(int a){
? cout<<"int abs"<<endl;
? return (a>=0?a:-a);//如果a>=0 则返回a 否则返回-a
}
float myabs(float a){
? cout<<"float abs"<<endl;
? return (a>=0?a:-a);//如果a>=0 则返回a 否则返回-a
}
double myabs(double a){
? cout<<"double abs"<<endl;
? return (a>=0?a:-a);//如果a>=0 则返回a 否则返回-a
}
//运行结果
int abs
a=1
int abs
b=2
float abs
c=2.2
float abs
d=3.9
double abs
e=3e-009
double abs
f=3e+006
注意 重载函数的形参必须不同:个数不同或者类型不同。编译程序对实参和形参的类型及个数进行最佳匹配,来选择调用哪一个函数。如果函数名相同,形参类型也相同(无论函数返回值类型是否相同),在编译时会被认为是语法错误(函数重复定义)。
例如:
(1) int add(int x, int y);
? float add(float x,float y);
(2) int add(int x, int y);
? int add(int x, int y, int z);
不要将不同功能的函数定义为重载函数,以免出现对调用结果的误解、混淆。
例如:
int add(int x, int y){ return x+y;}
float add(float x, float y){ return x-y;}
内容总结
以上是互联网集市为您收集整理的C++ 函数全部内容,希望文章能够帮你解决C++ 函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。