是有辦法的功能打電話給對方即C++函數問題
void menu()
{
some code here
play();
...
}
int play()
{
...
menu();
...
return 0;
}
是有辦法的功能打電話給對方即C++函數問題
void menu()
{
some code here
play();
...
}
int play()
{
...
menu();
...
return 0;
}
在你的代碼文件的頂部添加第二個函數的聲明:
int play();
void menu()
{
// some code here
play();
// ...
}
int play()
{
// ...
menu();
// ...
return 0;
}
這就是所謂的forward declaration,並通知標識符將在稍後宣佈的編譯器。
這是一種表示函數的方法,以便您在提供完整定義之前可以調用它。
從技術上講,這是一個很好的答案,但實際上它會導致堆棧溢出。 – 2011-04-24 14:35:30
對。你必須確保函數內部有一些邏輯阻止他們無限地調用對方。這會產生無限循環和堆棧溢出錯誤。這可以像使用「if」語句實現的警衛原因一樣簡單。有關遞歸函數調用的更多信息可用[在這裏,剛剛被問到的問題](http://stackoverflow.com/questions/5770597/recursive-loop-c)。 – 2011-04-24 14:52:47
是的,但是這是幾乎從來沒有你想,因爲不小心使用將打破棧做什麼。
你試過了嗎?它不適合你嗎? – 2011-04-24 14:09:52
是的,我做了,但沒有奏效。我是一個新手,我知道:D – Martin 2011-04-24 14:17:30