2010-05-30 129 views
0

我遇到了一個包含10個頭文件和10個源文件的程序。我在我的教科書中讀到這些函數是從main調用的。但是,我怎樣才能將數據從main()傳遞給這麼多函數呢?從main()調用函數在C++中

+0

這完全取決於它是什麼樣的數據和功能需要它的目的。也許你可以舉個例子,甚至僞代碼。 – 2010-05-30 17:29:52

+4

與將數據傳遞給任何函數的方式相同。 – Joel 2010-05-30 17:33:40

+3

我建議你繼續閱讀你的教科書...我相信一切都會變得清晰。 – 2010-05-30 17:36:22

回答

14

函數不一定需要從main調用。他們可以被其他功能調用。例如:

int foo(int x) 
{ 
    return x*x; 
} 

int bar(int x) 
{ 
    return foo(x) + 1; 
} 

int main() 
{ 
    int a = bar(42); 
    std::cout << a << std::endl; 
    return 0; 
} 

注意foo()不會從main()直接調用。

+0

謝謝。但是我的程序有100個類,1000多個函數遍佈許多文件。如何從main()調用它們?採用的程序是什麼? – Supriyo 2010-05-31 14:18:32

+0

許多這些類和函數將依賴於其他類和函數等。我懷疑你只需要從main調用一些頂級的東西,它就會從那裏緩慢下來。你必須研究代碼來確定你的「入口點」是什麼。 – 2010-05-31 16:45:36

+0

快速瀏覽代碼的好方法是通過一個名爲Doxygen的文檔程序運行代碼。它將生成帶有大量超鏈接的HTML文檔文件,以及標題/類依賴關係圖。確保您啓用了SOURCE_BROWSER選項,以便生成帶有超鏈接到所有類,結構,函數等的源代碼的HTML版本。 – 2010-05-31 16:50:06

2

在我看來,這句話是不正確的,但我猜是爲了說可以改寫像「您實施和使用的每一個函數或類方法是莫名其妙main()程序調用「

而且莫名其妙在這種情況下實際上意味着直接或間接 - 通過其他功能/功能包裝。

無論如何,這個想法應該是明確的 - 實際上是用一些函數調用從main()例程,它有時也被稱爲應用程序根儘量想做到這一點在你的應用程序做任何顯著行動你的應用程序作爲函數調用的一棵樹,然後你的樹的頂部就是你的函數)。