如果提供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;
}
答案 0 :(得分: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;
}