這個問題是我對某種情況缺乏理解的結果,所以如果聽起來過於愚蠢,請耐心等待。將類模板作爲函數參數傳遞
我有一個函數在一個類中,如:
Class A {
void foo(int a, int b, ?)
{
----
}
}
第三個參數我想傳遞,就像是
classA<classB<double > > obj
一個類型參數是這可能嗎?如果沒有,任何人都可以提出一個解決方法嗎?我剛開始閱讀關於模板的內容。
感謝,
薩揚
這個問題是我對某種情況缺乏理解的結果,所以如果聽起來過於愚蠢,請耐心等待。將類模板作爲函數參數傳遞
我有一個函數在一個類中,如:
Class A {
void foo(int a, int b, ?)
{
----
}
}
第三個參數我想傳遞,就像是
classA<classB<double > > obj
一個類型參數是這可能嗎?如果沒有,任何人都可以提出一個解決方法嗎?我剛開始閱讀關於模板的內容。
感謝,
薩揚
如果你只是把它放在那裏作爲第三個參數不工作?
void foo(int a, int b, classA< classB<double> > obj) { ... }
如果它是一個複雜的類型也可能是最好使它成爲一個const引用,以避免不必要的複製:
void foo(int a, int b, const classA< classB<double> > &obj) { ... }
這是我嘗試的第一件事,但編譯器抱怨A類不是一個類型,因此我認爲這個語法是否可以。我現在認爲,由於其他原因,我得到了這個錯誤,只是想確保我沒有錯,因爲我認爲它會是。非常感謝您的確認。 – Sayan 2010-07-07 03:01:04
您可以使用一個成員模板:
Class A{
template <typename T>
void foo(int a, int b, T &c) {
}
}
他/她爲什麼需要會員模板? – 2010-07-07 01:20:38
我想我一定誤解了這個問題。 (我正在解釋第三個參數中的?,因爲它是一個未知類型)。我的錯。 – MarkD 2010-07-07 12:56:50
是我已經開始彌補。 – Sayan 2010-07-07 03:01:34