v****s 发帖数: 1112 | 1 以下代码好像都是正确的,但是我在g++和visual studio都没法compile!
compiler给的说法也很古怪。。。。
Error 1 error C2059: syntax error : '{'hashtable.h 28 hashtable
Error 2 error C2334: unexpected token(s) preceding '{'; skipping
apparent function body hashtable.h 28 hashtable
源文件:因为所有error都在这个h file文件里,我只贴这个。。。如有需要再贴CPP。
。。
文件名:hashtable.h
#include
#include
using namespace std;
// Integer Hash Table
struct Node {
int key;
int value;
Node * next;
};
class HashTable {
public:
HashTable();
~HashTable();
void insertKeyValue(int, int);
void deleteKeyValue(int);
private:
Node **table;
void resize();
int hashfunc(int);
int primept;
int SIZE;
static int primenumber[]={101,211,1009,5011,10037,50021,100003};
//static const int *primenumber= new int[] {101,211};
//int *primenumber;
//int primenumber[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
}; | t******a 发帖数: 1200 | 2 Your method to define the static array in the class is wrong.
You need to put the instantiation part into the .cpp file,
using a format like :
int Foo::bar[4] = {1, 2, 3, 5};
hashtable
【在 v****s 的大作中提到】 : 以下代码好像都是正确的,但是我在g++和visual studio都没法compile! : compiler给的说法也很古怪。。。。 : Error 1 error C2059: syntax error : '{'hashtable.h 28 hashtable : Error 2 error C2334: unexpected token(s) preceding '{'; skipping : apparent function body hashtable.h 28 hashtable : 源文件:因为所有error都在这个h file文件里,我只贴这个。。。如有需要再贴CPP。 : 。。 : 文件名:hashtable.h : #include : #include
| x********q 发帖数: 108 | 3 只有static const int的initialization可以在类定义里做。
即便改写成类里声明,类外定义,编译可以通过,也有运行时出错的可能。建议阅读
http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.11 和后继的几个faq
hashtable
【在 v****s 的大作中提到】 : 以下代码好像都是正确的,但是我在g++和visual studio都没法compile! : compiler给的说法也很古怪。。。。 : Error 1 error C2059: syntax error : '{'hashtable.h 28 hashtable : Error 2 error C2334: unexpected token(s) preceding '{'; skipping : apparent function body hashtable.h 28 hashtable : 源文件:因为所有error都在这个h file文件里,我只贴这个。。。如有需要再贴CPP。 : 。。 : 文件名:hashtable.h : #include : #include
|
|