【问题标题】:Store/Recall previous parameters to function call存储/调用以前的参数到函数调用
【发布时间】:2014-06-14 03:56:50
【问题描述】:

目标

如果提供了 n,square(n) 应该返回 n*n

如果没有提供参数,square() 应该增加前一次调用中的 n 值并将其平方。

我该怎么做?

如果没有参数,我应该使用默认变量还是重载函数?

我的主要问题是从上一次调用中获取 n 的增量,我所能做的就是通过添加一个静态来获取相同的输入('n'),但是如果我在 square 函数中增加 n,那么即使有参数只要它会增加。例如。 n=7, 7*7=49,所以我将返回 49,但随后我从 main 中对 square 函数的调用中删除了参数,现在是 square(); ,则 n 应为 8,并返回 8*8=64。

main.cpp:

void main()
{
    int num = 5;
    square(num);
    cout<<"The square is: "<<square(num)<<endl;
}

square.h:

 int square(static int n=1); 

square.cpp

int square(static int n)
{
return n*n;
}

【问题讨论】:

  • num = square(num)替换square(num)...

标签: c++ function parameters overloading increment


【解决方案1】:

充分利用函数重载。

在 square.h 中:

extern int square();
extern int square(int n);

在 square.cc 中:

static int lastN = 0;

int square()
{
   return (lastN+1)*(lastN+1);
}

int square(int n)
{
   lastN = n;
   return n*n;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 2020-06-01
    • 1970-01-01
    • 2020-02-26
    • 2015-10-21
    • 1970-01-01
    • 2014-06-05
    相关资源
    最近更新 更多