是否所有的方法聲明中已模板參數需要與參數聲明一個類?編譯器似乎想要像下面C++的方法模板參數的定義
// Queue.h
template <class ItemType>
class Queue
{
Queue();
ItemType dequeue();
int count();
/* ... other methods ... */
};
// Queue.cpp
template <class ItemType>
Queue<ItemType>::Queue()
{ /*...*/ }
template <class ItemType>
int Queue<ItemType>::count()
{/*...*/}
template <class ItemType>
ItemType Queue<ItemType>::dequeue()
{/* ... */}
從Java/C#的到來,這似乎有點多餘了 - 我覺得我應該能夠更多這樣定義方法:
int Queue::count()
簽名不引用ItemType,所以我們可以忽略它。
Queue::ItemType Queue::dequeue()
簽名引用的ItemType,但是編譯器知道我們正在談論的模板參數,因爲我們晉級的標識符與Queue::
從技術上說,你是不是問* *的聲明,但關於*定義*的成員,在類模板聲明。 –