2010-07-07 124 views
2

這個問題是我對某種情況缺乏理解的結果,所以如果聽起來過於愚蠢,請耐心等待。將類模板作爲函數參數傳遞

我有一個函數在一個類中,如:

Class A { 

void foo(int a, int b, ?) 
{ 
---- 
} 
} 

第三個參數我想傳遞,就像是

classA<classB<double > > obj 

一個類型參數是這可能嗎?如果沒有,任何人都可以提出一個解決方法嗎?我剛開始閱讀關於模板的內容。

感謝,
薩揚

+0

是我已經開始彌補。 – Sayan 2010-07-07 03:01:34

回答

4

如果你只是把它放在那裏作爲第三個參數不工作?

void foo(int a, int b, classA< classB<double> > obj) { ... } 

如果它是一個複雜的類型也可能是最好使它成爲一個const引用,以避免不必要的複製:

void foo(int a, int b, const classA< classB<double> > &obj) { ... } 
+0

這是我嘗試的第一件事,但編譯器抱怨A類不是一個類型,因此我認爲這個語法是否可以。我現在認爲,由於其他原因,我得到了這個錯誤,只是想確保我沒有錯,因爲我認爲它會是。非常感謝您的確認。 – Sayan 2010-07-07 03:01:04

1

您可以使用一個成員模板:

Class A{ 

template <typename T> 
void foo(int a, int b, T &c) { 

    } 
} 
+0

他/她爲什麼需要會員模板? – 2010-07-07 01:20:38

+0

我想我一定誤解了這個問題。 (我正在解釋第三個參數中的?,因爲它是一個未知類型)。我的錯。 – MarkD 2010-07-07 12:56:50

相關問題