C++学习笔记(Day4 函数的参数传递、引用类型、内联函数)

本文详细介绍了C++中函数参数的传递方式,包括值传递和引用传递,并展示了如何通过内联函数和默认参数值提升效率。此外,还讨论了函数重载的概念及其注意事项,强调了正确使用重载函数的重要性。

函数的参数传递

 引用类型

 例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;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值