函数的参数传递

引用类型

例3-11 输入两个整数并交换
1、(值传递,参数单向传递)
// 例3-11 输入两个整数并交换
#include <iostream>
using namespace std;
//值传递版本,不改变实参
void swap(int a, int b){
int t = a;
a = b;
b = t;
}
int main() {
int x = 5, y = 10;
cout <<"x = " << x << " y = " << y << endl;
swap(x,y);
cout <<"x = " << x << " y = " << y << endl;
return 0;
}
2、(引用传递,参数单向传递)
更改为void swap(int& a, int& b)
含有可变参数的函数
提到了initializer_list,查了一下目前没搞懂。


3、内联函数


例3-14 内联函数应用举例
//例3-14 内联函数应用举例
#include <iostream>
using namespace std;
const double PI = 3.14159265358979;
inline double calArea(double radius){
return PI * radius * radius;
}
int main() {
int x = 5, y = 10;
double r = 3.0;
double area = calArea(r);
cout << area << endl;
return 0;
}
constexpr函数

带默认参数值的函数
默认参数值
可以预先设置默认的参数值,调用时如给出实参,则采用实参值,否则采用预先设置的默认参数值。
#include <iostream>
using namespace std;
int add(int x = 5,int y = 6){
return x + y;
}
int main() {
add(10,20);//10+20
add(10);//10+6
add();//5+6
}


例 3-15 计算长方体的体积

// 例 3-15 计算长方体的体积
#include <iostream>
#include <iomanip>
using namespace std;
int getVolume(int length,int width = 2,int height = 3);
int main() {
const int X = 10, Y = 12, Z = 15;
cout << " Some box data is " << getVolume(X,Y,Z) << endl;
cout << " Some box data is " << getVolume(X,Y) << endl;
cout << " Some box data is " << getVolume(X) << endl;
return 0;
}
int getVolume(int length,int width, int height){
cout << setw(5) << length << setw(5) << width << setw(5) << height << '\t';
return length * width * height;
}
函数重载(实现相同的或类似的功能)
C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。
形参类型不同
int add(int x,int y);
float add(float x,float y);形参个数不同
int add(int x,int y);
int add(int x,int y,int z);
注意事项
1、重载函数的形参必须不同:个数不同或类型不同。
2、编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数。

不要将不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。这样不好。
例 3-16 重载函数应用举例
编写两个名为 sumOfSquare 的重载函数,分别求两整数的平方和及两实数的平方和。
//例 3-16 重载函数应用举例
#include <iostream>
using namespace std;
int sumOfSquare(int a,int b){
return a * a + b * b;
}
double sumOfSquare(double a ,double b){
return a * a + b * b;
}
int main() {
int m,n;
cout << "Enter the value of (m,n): ";
cin >> m >> n;
cout << "Their sum of square: " << sumOfSquare(m,n) << endl;
double x,y;
cout << "Enter the value of (x,y):";
cin >> x >> y;
cout << "Their sum of square: " << sumOfSquare(x,y) << endl;
return 0;
}
本文详细介绍了C++中函数参数的传递方式,包括值传递和引用传递,并展示了如何通过内联函数和默认参数值提升效率。此外,还讨论了函数重载的概念及其注意事项,强调了正确使用重载函数的重要性。
758

被折叠的 条评论
为什么被折叠?



