【发布时间】:2011-06-22 10:29:48
【问题描述】:
我是 C++ 新手,但我似乎无法弄清楚是什么导致了这些错误。
以下是我的头文件:
#ifndef TABLE
#define TABLE
#include <iostream>
#include <cstdlib>
#include <vector>
typedef struct {
double successful , unsuccessful[2] ;
} Perform ;
using namespace std ;
template <class DATA>
class Table {
private :
vector<DATA>* slot;
vector<bool>* passBits;
vector<bool>* full;
int tableSize;
public :
explicit Table ( unsigned size = 5 ) ;
~Table( ) ; //destructor
void empty ( ) ;
bool insert ( DATA & data ) ;
bool insertD ( DATA & data ) ;
bool fetch ( DATA & data ) const ;
void print ( ostream & ) const ;
Perform perform ( ) const ;
} ;
template <class DATA>
ostream & operator << ( ostream & out , const Table<DATA> & table )
{
table.print( out ) ; return out ;
}
#include "table.cpp"
#endif
我的table.cpp如下:
template <class DATA>
Table<DATA> :: Table ( unsigned size ) // Error
{
}
template <class DATA>
Table<DATA> :: ~Table( ) // Error
{
}
template <class DATA>
void Table<DATA> :: empty ( ) // Error
{
}
template <class DATA>
bool Table<DATA> :: insertD ( DATA & data ) // Error
{
}
#include "MyData.hpp"
标记为// Error 的前两行有错误。最后两个有一个“在‘
这是给我的大纲。除了私有字段,我不允许修改 table.hpp 文件。
任何帮助将不胜感激。
【问题讨论】:
-
谁或什么书在教授 .cpp 文件中#include 的糟糕做法?
-
为什么要在头文件中包含
.cpp文件?这很不寻常。通常情况下是相反的(.cpp文件,包括头文件)。 -
这是给我的“大纲”。
标签: c++ templates g++ hashtable