У меня проблема с шаблоном и указателями (я думаю). Ниже часть моего кода: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
И файл с функцией Defintion:
/* 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