2014-06-14 73 views
0

目標

如果n提供,方形(N)應返回N * N存儲/調用先前的參數函數調用

如果沒有提供參數,方()應增加來自n值以前的通話和廣場。

我該怎麼做?

如果沒有參數,我應該使用默認變量還是重載函數?

我的主要問題是從前面的調用中獲得n的增量,我所能做的就是通過添加靜態獲得相同的輸入('n'),但如果我在平方函數中增加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

替換'平方(NUM)''與NUM =平方(NUM)'... – meagar

回答

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; 
} 
+0

THX !!真正有用 – user3306652