2011-02-01 97 views
66

在閱讀boost :: test的文檔時,我遇到了「自由功能」這個詞。我的理解是,一個自由函數是任何不返回任何東西的函數(它的返回類型是void)。但進一步閱讀後,似乎免費函數也沒有任何爭論。但我不確定。這些都是我的假設。那麼任何人都可以定義自由功能?在C++中,術語「自由功能」是什麼意思?

回答

76

在C++中的術語自由函數只是指非成員函數。每個不是成員函數的函數都是一個自由函數。

struct X { 
    void f() {}    // not a free function 
}; 
void g() {}     // free function 
int h(int, int) { return 1; } // also a free function 
+0

讓我們說我們有我們的主要功能在不同的文件裏面,我們需要調用一個免費的功能,所以我應該怎麼做才能在其他一些文件免費功能,我將在以後包括它在我的主文件?我的意思是我應該製作一個hpp文件,在那裏實現我的自由功能(可能是靜態內聯函數)? – Glolita 2012-05-04 08:34:03