最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

当前热讯:c++打卡第五天

来源:博客园
嵌套和递归一、嵌套调用。 1、嵌套调用是指在一个函数中调用另一个函数,也可以在一个类中使用另一个类作为成员变量。 2、实例 ①函数成员调用
#includeusing namespace std;int fa2(int a){    return a+1;}int fa1(int n){    return 2*fa2(n);}int main(){    int n;    cin>>n;    cout<

上述输入n后先调用fa1函数,进入fa1函数后继续调用fa2函数,这就是嵌套调用函数。输入n=2,结果为6。

②类成员嵌套使用

class A {public:    int val_a;};class B {public:    A obj_a;    void set_a_val(int val) { obj_a.val_a = val; }};class C {public:   B obj_b;   void set_b_val(int val) { obj_b.set_a_val(val); }};int main(){    C obj_c;    obj_c.set_b_val(10);    cout << "obj_c.obj_b.obj_a.val_a = " << obj_c.obj_b.obj_a.val_a << endl;  // 输出 obj_c.obj_b.obj_a.val_a = 10}

在上述代码中,类 `B` 中使用了类 `A` 的对象作为成员变量,而类 `C` 又使用了类 `B` 的对象作为成员变量。我们可以通过调用 `obj_c.set_b_val(10)` 方法来设置 `obj_c` 对象中嵌套的类成员的值,并最终输出结果为 `obj_c.obj_b.obj_a.val_a = 10`。


(资料图片仅供参考)

以上就是 C++ 中嵌套调用的两种方式的简单介绍。

二、递归。

递归指的是在一个函数的定义中调用自身的过程。通常来说,递归可以让我们更简单地描述一些复杂的问题和计算过程。在递归过程中,每次调用会将问题分解成更小的子问题并进行求解,最终得到整个问题的解。递归需要注意结束条件,否则可能会导致无限嵌套调用自身而造成程序崩溃或者死循环。通过以下一个实例来具体说明一下。

1、问题描述。

编写递归函数getPower计算x的y次方,在同一个程序中针对整形和实型实现两个重载函数:

int getPower(int x,int y);

double getPower(double x,int y);

在主程序中实现输入输出,分别输入一个整数a和一个实数b作为底数,再输入一个整数m作为指数,输出a的m次方和b的m次方。

2、设计思路

输入待计算的底数x和指数y,进入调用函数,返回底数同时乘以函数(x,y-1),当y为1或者0时 返回最终值。

3、流程图

4、代码实现

#includeusing namespace std;int getPower(int x,int y){    if(y==0)    {        return 1;    }    if(y>0)    {    return x*getPower(x,y-1);    }}double getPower(double x,int y){    if(y==0)    {        return 1;    }    if(y>0)    {    return (1.0)*x*getPower(x,y-1);    }}int main(){    int a,k;    double b;    cin>>a;    cin>>b;    cin>>k;    int r1;    double r2;    r1=getPower(a,k);    r2=getPower(b,k);    cout<

5、结果实现

关键词: