【问题标题】:Instantiating an object on the Heap在堆上实例化一个对象
【发布时间】:2011-03-28 02:09:40
【问题描述】:

我收到错误:

hashing.cpp: In function ‘int main(int, char**)’:
hashing.cpp:96: error: expected type-specifier before ‘Linked_HashTable’
hashing.cpp:96: error: cannot convert ‘int*’ to ‘LinkedList_HashTable*’ in initialization
hashing.cpp:96: error: expected ‘,’ or ‘;’ before ‘Linked_HashTable’

编译我的代码时。我想我错过了一些很容易弄清楚的东西。

给我错误的代码是:

Array_HashTable *linear_div_hash = new Array_HashTable(sizeDiv);
LinkedList_HashTable *chain_div_hash = new Linked_HashTable(sizeDiv);
Array_HashTable *doubleHash = new Array_HashTable(sizeDiv);

Array_HashTableLinkedList_HashTable() 的构造函数都采用像 sizeDiv 这样的整数。非常感谢任何帮助。

谢谢!

【问题讨论】:

  • 接受答案对于 StackOverflow 来说就像鲜花和巧克力对于第一次约会一样。考虑回到你的旧问题并接受他们的答案;它可能会证明让人们更有可能帮助您解决这个问题和未来的问题!
  • 您应该使用智能指针来保存这些资源。
  • @corsiKa 你在第一次约会时带了鲜花和巧克力?

标签: c++ object compiler-errors heap-memory


【解决方案1】:

应该

LinkedList_HashTable *chain_div_hash = new Linked_HashTable(sizeDiv); 

LinkedList_HashTable *chain_div_hash = new LinkedList_HashTable(sizeDiv);

? (注意代码中缺少的List)。

【讨论】:

    【解决方案2】:
    LinkedList_HashTable *chain_div_hash = new LinkedList_HashTable(sizeDiv);
    

    也许您输入了Linked_HashTable,但输入了LinkedList_HashTable

    【讨论】:

      【解决方案3】:

      看起来您在LinkedList_HashTable *chain_div_hash = new Linked_HashTable(sizeDiv); 行上将LinkedList_HashTable 错误键入为Linked_HashTable,导致编译器认为Linked_HashTable(sizeDiv); 是对返回int 的隐式声明函数的函数调用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-13
        • 2016-09-02
        • 1970-01-01
        • 1970-01-01
        • 2016-01-17
        • 1970-01-01
        相关资源
        最近更新 更多