C ++ HashTable,两个相同的实现,但其中一个给出错误

时间:2018-09-14 07:41:52

标签: c++ static hashtable

以下代码会产生此错误:

class HASHTABLE
{
public:
  const int DIMENSION = 10;
  struct NODE
  {
     char* INFO;
     NODE* LINK;
  };
  NODE arr1[DIMENSION];
};


int main()
{
  const int dimension=10;
  struct node
  {
    char* info;
    node* link;
  };
  node arr2[dimension];
};

因此,int main()中的代码没有错误,但是当我声明class HASHTABLE时却出现了NODE arr1[DIMENSION];

的错误,但是int(10) a nonstatic member reference must be relative to specific object.中的代码却没有错误

解决方案很明显,只需输入static const int DIMENSION = 10;,我就不会出错。

但是,对于我对C ++的了解程度,mainclass中的代码是相同的。

有人可以解释幕后发生的事情吗?

我也希望我能理解:

如果我将DIMENSION声明为静态对象,那么我使用HASHTABLE创建的每个对象也将具有相同的DIMENSION,但是我认为通过使用const来保证安全吗?

0 个答案:

没有答案