1
對於下面的代碼,我在實現行收到編譯錯誤: 「B沒有定義類型」。 我知道在類聲明中放置函數定義的解決方案。但是,是否有可能將模板類聲明中的函數定義刪除?由於C++模板 - 類結構
template<typename T>
class A {
public:
// ctor, dtor and interface funcs etc
private:
struct B {
T value;
B *next;
}
B *locate(const T& val) const;
// blah blah
};
template<typename T>
B *A<T>::locate(const T& val) const
{
//logic
}
謝謝,你是現貨。 「typename」是我錯過的。 –
確認馮登是對的;這有助於我在模板中嵌套其他類或結構時更多地理解模板。 –