C++函数

2

C++函数

  函数是面向过程的程序设计精髓,也是所有语言中最重要的一个内容,学好函数,可以设计出优雅的程序,下面给小伙伴们介绍C++函数的定义,调用,参数传递,声明,默认参数,占位参数和函数的重载。

函数定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<iostream>
using namespace std;

//函数小伙伴们其实并不陌生,在第一行C++代码中就用到了函数的知识,main函数,main函数是程序运行的起始位置,程序必须要有main函数才可以运行
//函数的定义包括返回值类型,函数名,参数列表和函数体。这里单独强调返回值,返回值代表函数运行结束后返回到调用处时产生的数据
//如果没有返回值,类型要写void,可以不写return,如果有返回值,一定要写return
//函数的参数列表要写清楚参数的类型,这和Python有很大的区别
int add(int a, int b) {

int c = a + b;

return c;
}


int main() {

int a = 5;
int b = 3;

//函数的调用使用函数名(参数),如果有返回值可以用变量接收
int c = add(a, b);
int d = add(c, b);

cout << "c = a + b = " << c << endl;
cout << "d = c + b = " << d << endl;

return 0;
}

1

函数声明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using namespace std;

//有时为了更好的看清楚main函数的具体位置,而且让其他人能够能清晰的看出这个文件中的函数具体有哪些,可以在文件开始写清楚函数的声明。
//函数的声明和定义类似,参数列表可以只写参数的类型,并且后面没有花括号,而用分号代替,声明的作用就是告诉编译器,后面有这个函数的具体实现,否则编译器会报错。
int add(int, int);

int main() {

int a = 5;
int b = 3;

//函数的调用使用函数名(参数),如果有返回值可以用变量接收
int c = add(a, b);
int d = add(c, b);

cout << "c = a + b = " << c << endl;
cout << "d = c + b = " << d << endl;

return 0;
}

int add(int a, int b) {

int c = a + b;

return c;
}

2

默认参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;

//默认参数是指在参数列表中,指定了参数的指,这样传递时可以不传递该参数,会使用默认的参数代入函数进行计算。
//注意默认参数只能出现在参数列表的末尾,允许出现多个默认参数。
double calcArea(int r, double pi=3.1415926) {

double area = pi * r * r;

return area;
}

int main() {

double c = calcArea(3);
double d = calcArea(3, 3.14);

cout << "圆c的面积为 " << c << endl;
cout << "圆d的面积为 " << d << endl;

return 0;
}

4

占位参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<iostream>
using namespace std;

//占位参数是指在参数列表中,占了一个位置,传递参数时必须要传入这个参数,否则会报错,但是在函数内无法使用,因为没有变量接收这个参数。
//占位参数使用概率不高,见到时能够认识它即可。
double calcArea(int r, int, double pi=3.1415926) {

double area = pi * r * r;

return area;
}

int main() {

double c = calcArea(3, 0);
double d = calcArea(3, 1, 3.14);

cout << "圆c的面积为 " << c << endl;
cout << "圆d的面积为 " << d << endl;




return 0;
}

4

函数重载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<iostream>
using namespace std;

//函数重载是指,一个函数名有不同的功能实现,当传入的参数个数不同,类型不同或者顺序不同时,函数可以发生重载,调用时,根据和哪一个函数更匹配则调用相应的函数。
//特别注意,参数名和返回值不同不能成为函数重载的发生条件,编译器会报错。
double calcArea(int r, double pi) {

double area = pi * r * r;

return area;
}

double calcArea(int r, double pi, int) {

double area = pi * r * r;

return area;
}

double calcArea(double r, double pi) {

double area = pi * r * r;

return area;
}

double calcArea(double pi, int r) {

double area = pi * r * r;

return area;
}

int main() {

double c = calcArea(3, 3.14);
double d = calcArea(3, 3.14, 0);
double e = calcArea(3.0, 3.14);
double f = calcArea(3.14, 3);

cout << "圆c的面积为 " << c << endl;
cout << "圆d的面积为 " << d << endl;
cout << "圆e的面积为 " << e << endl;
cout << "圆f的面积为 " << f << endl;

return 0;
}

4

C++小结

  函数是我们面向过程编程的重要思想,同时也是面向对象中封装特性的体现,有了函数我们可以节约大量的时间和空间管理我们的代码,提高了代码的复用率,但是我们要注意编程习惯,尽量一个函数实现一个功能,不要将多个功能写在同一个函数之中。

-------------本文结束感谢您的阅读-------------
0%