簡體   English   中英

有關C ++模板的問題

[英]Question regarding C++ Templates

我為有關模板的測試程序使用了一個簡單的類,這就是我所做的:

template <typename T>
class test
{
public:
    test<T>::test();
    T out();
};

template <typename T>
test<T>::test()
{
}

T test<T>::out()
{
}

int main()
{
    //test<int> t;
}

但是,當我嘗試編譯時,它說“ T”:未聲明的標識符類模板的使用需要模板參數列表 ,指向同一行,在該行中我實現了方法out() 誰能解釋這個問題是什么? 我正在使用Visual Studio 2008。

以下更准確:

template <typename T>
class test
{
public:
    test();
    T out();
};

template <typename T>
test<T>::test()
{
}

template <typename T>
T test<T>::out()
{
}

1)不要在類內部使用<T> 2)不要忘記在類主體之外的每個方法聲明之前聲明模板<T>

您對out成員的定義缺少模板參數列表。 出來應該是:

template <typename T>
T test<T>::out() 
{ 
} 

這行是錯誤的:

test<T>::test();

只需寫下:

test();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM