Отсутствует ‘;’ перед «шаблоном & lt;»

Поэтому я получаю странную ошибку при компиляции моей программы:

Error 1 error C2143: syntax error : missing ';' before ''template<''

Я делаю все довольно стандартно; Ничего необычного:

#ifndef HEAP_H
#define HEAP_H
//**************************************************************************
template<typename TYPE>
class Heap
{
private:
TYPE* heapData;
int currSize;
int capacity;
void _siftUp(int);
void _siftDown(int);
int _leftChildOf(int) const;
int _parentOf(int) const;

public:
Heap(int c = 100);
~Heap();
bool viewMax(TYPE&) const;
int getCapacity() const;
int getCurrSize() const;
bool insert(const TYPE&);
bool remove(TYPE&);
};

Не совсем уверен, что не так. Я попытался закрыть и снова открыть свою программу — не повезло. Использование Visual Studio 2010

3

Решение

Эта ошибка может вводить в заблуждение.

Это не обязательно важно, чтобы ; происходить до template<,

; на самом деле ожидалось после без разницы сделал происходят раньше template<,

Этот пример показывает, как это могло произойти.

файл header.h

class MyClass
{

}

файл heap.h

#ifndef HEAP_H
#define HEAP_H
//**************************************************************************
template<typename TYPE>
class Heap
{
};

#endif

файл main.cpp

#include "header.h"#include "heap.h"
int main()
{
}

Редактировать:

Причина, по которой эта ошибка компилятора привела вас к неправильному файлу, заключается в том, что до компиляция, препроцессор будет обрабатывать main.cpp в этот поток персонажей.

class MyClass
{

}

//**************************************************************************
template<typename TYPE>
class Heap
{
};

int main()
{
}
11

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]