我有一個模板和指針問題(我認爲)。下面是我的代碼的一部分:C++模板和指針
/* ItemCollection.h */
#ifndef ITEMCOLLECTION_H
#define ITEMCOLLECTION_H
#include <cstddef>
using namespace std;
template <class T> class ItemCollection
{
public:
// constructor
//destructor
void insertItem(const T);
private:
struct Item
{
T price;
Item* left;
Item* right;
};
Item* root;
Item* insert(T, Item*);
};
#endif
而且具有功能確定指標的文件:
/* ItemCollectionTemp.h-member functions defintion */
#include <iostream>
#include <cstddef>
#include "ItemCollection.h"
template <class T>
Item* ItemCollection <T>::insert(T p, Item* ptr)
{
// function body
}
以下是這是由下面這行代碼生成的錯誤:
Item* ItemCollection <T>::insert(T p, Item* ptr)
錯誤:
錯誤C2143:語法錯誤:缺少';'之前'*'
錯誤C4430:缺少類型說明符 - int假定。注意:C++不支持默認int
錯誤C2065: '類型':未聲明的標識符
錯誤C2065:前缺少 ')': '類型':未聲明的標識符
錯誤C2146:語法錯誤標識符'p'
錯誤C4430:缺少類型說明符 - 假定爲int。注意:C++不支持default-int
錯誤C2470:'ItemCollection :: insert':看起來像一個函數定義,但沒有參數列表;跳過表觀體
錯誤C2072: 'ItemCollection ::插入':語法錯誤:: ')'
任何幫助非常感謝函數
錯誤C2059的初始化。
@Kary:既然你要求解釋阿列克謝的答案,記住你不應該接受一個答案,除非你真的對此感到滿意。如果你想要更多的細節,那就說,不要接受它。或者接受另一個答案,它提供了你想要的細節。 – jalf 2010-04-13 19:04:40