【发布时间】:2013-04-18 20:32:36
【问题描述】:
我在编译程序时遇到了一个奇怪的错误:
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
【问题讨论】:
-
您是否包含另一个在类定义后没有分号的标头?
-
我的钱花在了你没有给我们看的代码上 :)
-
你有
#includeing 任何标题吗? -
向我们展示一些实际重现问题的代码。由于缺少
#endif,您发布的代码无法编译。如果我添加它,它编译得很好。很难解决被描述为“我有一些代码出现问题。这里有一些代码没有出现问题。现在我的问题是什么?” -
这是一个头文件吧?可能是在此之前#included 的头文件缺少
;。
标签: c++ visual-studio-2010 templates header-files