我有,我繼承了真的老了項目幾類,最後我知道他們用的CodeWarrior 8編譯我現在的XCode 3.2模板 - >如何解密,決定是否需要並創建?
這裏是什麼,我掙扎的例子:
template <class registeredObject>
typename std::vector<registeredObject>::iterator FxRegistry<registeredObject>::begin(void)
{
return mRegistryList.begin();
}
的錯誤是:
no 'typename std::vector<registeredObject, std::allocator<_CharT> >::iterator FxRegistry<registeredObject>::begin()' member function declared in class 'FxRegistry<registeredObject>'
template definition of non-template 'typename std::vector<registeredObject, std::allocator<_CharT> >::iterator FxRegistry<registeredObject>::begin()'
如何決定如何解決這些和從哪裏開始找?
UPDATE:這裏是FxRegistry類別:
template <class registeredObject>
class FxRegistry
{
public:
// Construction
FxRegistry() {}
~FxRegistry();
// List management
void Register(const registeredObject &ob);
void Unregister(registeredObject &ob);
// List iteration
typedef std::vector<registeredObject>::iterator iterator;
typedef std::vector<registeredObject>::const_iterator const_iterator;
std::vector<registeredObject>::iterator begin(void);
std::vector<registeredObject>::const_iterator begin(void) const;
std::vector<registeredObject>::iterator end(void);
std::vector<registeredObject>::const_iterator end(void) const;
FxSize size(void);
void Insert(iterator iter,const registeredObject &ob);
registeredObject &operator[](FxInt32 index) { return mRegistryList[index]; }
void clear() {mRegistryList.clear();};
protected:
vector<registeredObject> mRegistryList;
};
我在每行上得到的錯誤上面幾乎是: 錯誤:類型的std ::矢量>'不從類型 'FxRegistry' 衍生錯誤:預期';' 'iterator'之前
我以爲迭代器是矢量類型的,所以我會聲明一個矢量迭代器。
好吧,錯誤消息似乎是說「*這個成員函數*沒有在類中聲明(你說它屬於)」。 – UncleBens 2010-04-13 22:51:49